需要明确的是,我想复制YouCompleteMe 的默认行为:
当您键入时,会弹出完成菜单。如果您喜欢补全,您可以使用
<Tab>
键(默认情况下,可以更改为<Enter>
或<Down>
箭头或其他)来选择您想要的补全字符串。“通过 Tab 键浏览”列表以选择所需项目的行为会插入候选字符串。当您按 Tab 键切换到不同的候选项时,编辑器代码将替换为新的候选项。没有接受键,因为当您在菜单中选择要选择的候选项时,该候选项已经插入到编辑器中。没有什么可以“接受”的。您只需继续输入,候选人就已被插入。
Visual Studio Code 是否可以实现这种行为(默认情况下或通过插件)?
intellisense code-completion visual-studio-code youcompleteme
假设我有一个这样的类:
class Node {
public:
Node(Node* parent = 0) : mParent(parent) {}
virtual ~Node() {
for(auto p : mChildren) delete p;
}
// Takes ownership
void addChild(Node* n);
// Returns object with ownership
Node* firstChild() const;
// Does not take ownership
void setParent(Node* n) { mParent = n; }
// Returns parent, does not transfer ownership
Node* parent() const { return mParent; }
private:
list<Node*> mChildren;
Node* mParent;
};
Run Code Online (Sandbox Code Playgroud)
我现在想使用智能指针和/或右值引用来指示所有权在哪里和不被转移.
我的第一个猜测是改为mChildren
包含unique_ptr
s,调整功能签名如下.
// Takes ownership
void addChild(unique_ptr<Node> …
Run Code Online (Sandbox Code Playgroud)