标签: code-completion

25
推荐指数
4
解决办法
3万
查看次数

如何使用YouCompleteMe在vim中启用C++模板类的完成

当使用vim插件YouCompleteMe进行C++代码完成时,我偶然发现了一个问题.使用嵌套模板类可以使完成无法正常工作.

请考虑以下示例来重现行为:

#include <vector>

template<class T>
class foo {
  public:
  void Init();

  private:
  struct bar {
    int foobar;
  };
  bar one_bar;
  std::vector<foo<T>::bar> some_bars;
};

template<class T>
void foo<T>::Init(){
  one_bar.foobar = 0; // completion as expected
  some_bars.at(0).foobar = 0; // no completion neither for "at" nor for "foobar"
}
Run Code Online (Sandbox Code Playgroud)

"some_bars"的代码完成根本不起作用,而"one_bar"的行为与预期一致.

如何完成此代码的完成工作?这个问题是否与设置有关并且实际上应该有效还是YCM中的错误?

我的系统是基于debian的jessie/sid,vim版本7.4,来自GitHub的YCM最新版本.

编辑:YCMs bug跟踪器中报告了类似的问题:https : //github.com/Valloric/YouCompleteMe/issues/243 https://github.com/Valloric/YouCompleteMe/issues/530

似乎是铿锵而不是YCM中的错误.有人能证实吗?

编辑2:我在YCM问题跟踪器中打开了另一个问题. https://github.com/Valloric/YouCompleteMe/issues/1170

目的是获得有关clang中的错误信息的更多信息,最后在clang问题跟踪器中进行错误报告.

编辑3:我按照RedX的建议程序,在clang中输入我的代码以获得完成.Clang没有为代码中讨论的位置提供任何建议.这显然是YCM未能在vim中提出建议的原因,它与YCM或vim无关.

已提交clang问题跟踪器中的错误报告:http: //llvm.org/bugs/show_bug.cgi?id = 20973

c++ vim templates clang code-completion

25
推荐指数
1
解决办法
2007
查看次数

如何在 Visual Studio 2022 中禁用自动双引号

我使用 Visual Studio 2022 一段时间了,它的行为非常烦人。当我在现有文本前输入引号 \xe2\x80\xba"\xe2\x80\xb9 时,要将此文本括在引号中,Visual Studio 会在文本前输入两个引号。

\n

在早期版本中,仅当您在行尾输入引号而不是在现有文本之前输入引号时,才会发生这种情况。

\n

很多时候,我只想输入一个引号,而 Visual Studio 会写两个。\n我想也许我已经习惯了这种行为,但我没有。

\n

有谁知道如何停用这种行为。

\n

我已经停用了所有扩展,只是为了确保此行为不是由扩展引起的。

\n

code-completion visual-studio-2022

25
推荐指数
1
解决办法
4518
查看次数

有没有人为vim找到一套好的python插件 - 特别是模块完成?

我正在寻找一套插件,可以帮助我最终切换到vim全职.

现在我正在使用Komodo取得了一些成功,但他们的vim绑定有足够的错误,我已经厌倦了它.

不过,我在Komodo所喜欢的是代码完成.所以,这就是我正在寻找的(按重要性排序).

  • 代码完成,意思是:编写完整模块/功能/等的能力.在python路径上的任何模块中,而不仅仅是系统模块.完成时显示文档字符串的奖励积分.
  • 跳转到类定义.我猜CTAGS会这样做,所以你们如何管理自动更新你的标签文件?
  • 用于管理缓冲区的项目类型管理:理想情况下,可以在目录结构中grep文件名以打开它.在缓冲区打开时显示类定义索引的奖励.
  • Bzr整合.不是非常重要,因为大部分内容我都可以放到shell中去做.

python vim code-completion

22
推荐指数
1
解决办法
8770
查看次数

Pydev Code完成一切

在许多情况下(例如函数参数),Pydev不会静态地知道变量的类型.因此,代码完成(在.使用之后或使用时ctrl+space)不起作用.

在大多数情况下,您在设计软件时知道运行时的类型.有没有办法暗示Pydev正确编码完成它?

我想这可能需要特定的Pydev功能,或者甚至是新的Python PIP.

这实际上似乎是所有动态语言的一般问题......

更新:
也许有一个例子可以澄清:

def some_func(a_list, an_object):
    a_list.app        # Here I would not get code completion for append
Run Code Online (Sandbox Code Playgroud)

如果Pydev(或PIP)支持它,可以使用的示例:

from someobj import SomeObject
def some_func(a_list, an_object):
    # typecast: a_list=list
    # typecast: an_object=SomeObject
    a_list.app        # Now code completion would show append
Run Code Online (Sandbox Code Playgroud)

我不支持这种特定的方法 - 它只是一个可以工作的系统的例子.同样,当然这不应该是强制性的 - 但有时缺乏提示类型的可能性是令人讨厌的.

python eclipse pydev code-completion

22
推荐指数
2
解决办法
5761
查看次数

如何修改Class-Completion生成的代码(ctrl-shift-c)

我想修改类完成,以便创建的每个方法都包含一个 raise ENotImplemented.Create;

有谁知道如何自定义此行为?

更新:
我想要的解决方案不依赖于第三方.
IDE从哪里获取模板?
通过OTA有办法吗?

delphi code-completion

22
推荐指数
1
解决办法
1108
查看次数

导入模块时隐藏外部模块(例如,关于代码完成)

我在一个包中有一些模块(一种工具包),我在我的项目中使用它.结构如下所示:

the_toolkit:
    __init__.py
    basic_io.py
    simple_math.py
    matrix_kit.py
    ...
Run Code Online (Sandbox Code Playgroud)

现在当我从包中导入模块后使用IPython或代码完成VIM

from the_toolkit import matrix_kit
Run Code Online (Sandbox Code Playgroud)

我得到一堆模块/功能,其matrix_kit.py进口(array,math,log,loggin,format_exc,等等),与该实际功能一起matrix_kit限定.我怎样才能否则过滤掉一切,因为我不感兴趣,matharray在的代码完成matrix_kit模块?

__init__.py许多pythonistas建议这是空的,还是这样做的?

python python-import code-completion

20
推荐指数
2
解决办法
6279
查看次数

VS2013智能感知代码完成

首先我认为这是VS2013 RC/beta的一个问题,但现在我安装了VS2013 RTM并且仍然存在同样的问题:代码完成仅在我通过strg + space手动执行后才会打开.如何打开例如点后打开窗口?

intellisense code-completion visual-studio visual-studio-2013

20
推荐指数
4
解决办法
6万
查看次数

是否可以将IntelliJ IDEA作为代码完成的无头过程运行?

免责声明:这是Java和IntelliJ的大师那天的天真问题!

首先,我的观点是不要启动尚未重新审视的IDE或编辑的战争.作为一名程序员,有时候我只想享受一些乐趣,我对这个时期感到好奇.准备?

我们在这里,我每天都使用GNU/Emacs,我非常满意.作为Java开发人员,我非常了解IDE的代码完成功能.有些项目已尝试将此类完成传播到Vim或Emacs:请参阅eclim项目,派生的emacs-eclim项目,或者使用完全相反的方法:最近的(ATTOW)ideavim插件.话虽这么说,我现在想知道eclim方法是否可以应用于IntelliJ/Emacs情侣利用或不是yasnippet和/或自动完成.第一个问题是,乍一看,似乎不可能像使用Eclipse那样将IntelliJ作为无头过程运行.

因此,我认为第一步是使IntelliJ的代码完成组件无头运行.我已经浏览了完成代码,但我对Java的熟练程度不足以确定是否可行.

让我知道你的想法.

来自评论的更新:

Tom的评论中,我同意主要问题不是运行无头IntelliJ而是隔离代码完成组件并开发代码完成服务器插件.不过,没有一个完整的IntelliJ的UI运行会很好.我将尝试看看如何链接Emacs和IntelliJ插件.

有趣(......或不)引用:

java vim emacs intellij-idea code-completion

20
推荐指数
0
解决办法
4329
查看次数

如何在Android studio中自动完成循环

我正在使用Android工作室,我正试图找到一种方法来使用我曾经在eclipse中做的非常常见的事情.当我正在编写(例如)一个for循环时,我正在写"for"这个词然后我点击Ctrl+ Space和eclipse自动完成到一个包含所有参数的for循环

for (int i=0 ; i<mCheckBoxArray.length;i++){
            mCheckBoxArray[i].setChecked(false);
        }
Run Code Online (Sandbox Code Playgroud)

但现在,在Android工作室中它只是自动完成for().for循环只是一个例子,有谁知道如何在android studio中做到这一点?

android for-loop keyboard-shortcuts code-completion android-studio

19
推荐指数
2
解决办法
2万
查看次数