小编Sym*_*ion的帖子

VSCode 如何自动插入 Intellisense 建议而无需按 Enter?

默认 VS Code 智能感知行为

  • 向用户呈现建议菜单
  • 然后,用户必须按UpDown箭头键才能浏览菜单
  • 最后用户必须确认Enter插入建议并关闭对话框

我想要什么

  • 不需要按Enter
  • Up通过按/自动插入(并循环)建议Down
  • 按任何其他键将关闭对话框并继续输入

需要明确的是,我想复制YouCompleteMe 的默认行为

当您键入时,会弹出完成菜单。如果您喜欢补全,您可以使用<Tab>键(默认情况下,可以更改为<Enter><Down>箭头或其他)来选择您想要的补全字符串。“通过 Tab 键浏览”列表以选择所需项目的行为会插入候选字符串。当您按 Tab 键切换到不同的候选项时,编辑器代码将替换为新的候选项。没有接受键,因为当您在菜单中选择要选择的候选项时,该候选项已经插入到编辑器中。没有什么可以“接受”的。您只需继续输入,候选人就已被插入。


Visual Studio Code 是否可以实现这种行为(默认情况下或通过插件)?

intellisense code-completion visual-studio-code youcompleteme

8
推荐指数
1
解决办法
7027
查看次数

使用unique_ptr指示(非)所有权转移

假设我有一个这样的类:

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_ptrs,调整功能签名如下.

    // Takes ownership
    void addChild(unique_ptr<Node> …
Run Code Online (Sandbox Code Playgroud)

c++ unique-ptr c++11

3
推荐指数
1
解决办法
1516
查看次数