MaskRay / vscode-ccls

ccls plugin for Visual Studio Code
123 stars 37 forks source link

'ccls.showReferences' failed. #1

Closed toge closed 6 years ago

toge commented 6 years ago

Thank you for developing awesome vscode extention!. I've just started to use this. But I met error messages when I click Code Lens text("xx calls" or "xx refs").

Error messages is following :

Running the contributed command:'ccls.showReferences' failed.

There are error messages in console log at same time.

[Extension Host] [UriError]: Scheme is missing: {scheme: "", authority: "", path: "null", query: "", fragment: ""}

How can I solve this error messages?

My environment: Visual Studio Code 1.27.2 ccls(LLVM) : 6.0.1 Fedora 28

icylogic commented 6 years ago

I have encountered this issue for days, too. So I fixed it myself (See #2)

What it now looks like in VSCode 1.27.2

GIF Demo

And I also add support for the global option "editor.codeLens" so you can completely turn off the CodeLens (Save half of a screen)

Note that if you want to use this pull request, you'd better change Line 6 in package.json to something like "version": "0.1.13", so it won't be replaced by current version in store (which is 0.1.12) by VSCode automatically.

MaskRay commented 6 years ago

As you may have noticed, vscode-ccls is merely a re-packaging of vscode-cquery. I lack to bandwidth to learn a new editor (Emacs) and a new language (TypeScript) so it is probably lagging behind emacs-ccls. There are custom cross references which I really want to express in other editors https://github.com/MaskRay/ccls/wiki/Emacs#cross-reference-extensions

For the specific change, editor.codeLens (I am not clear how options are organized in VSCode), if the naming can be consistent with initialization options defined in src/config.h https://github.com/MaskRay/ccls/wiki/Initialization-options it would be better. But no reason to procrastinate it :) The development on vscode-cquery has also slowed down, thus I think it may not be too bad to cherry pick valuable commits from time to time.

icylogic commented 6 years ago

@MaskRay VS Code could display multiple CodeLens like

screenshot

(provided by ccls and gitlens)

So editor.codeLens is not an extension-specific option. It's an existing global (or workspace-wise) option to turn on / off all CodeLens. (VSCode only)

Option like ccls.cacheDirectory belongs to ccls so it should be consistent with the Wiki. And I didn't see any option to toggle ccls CodeLens in the Wiki.

icylogic commented 6 years ago

I tried to implement $ccls/call of Cross References. It's much easier than I thought.

Demo show callees up to 3rd level: I pressed <space> t

ezgif com-optimize 2

my mapping

        {
            "before": ["<leader>", "t" ],
            "commands": [{ "command": "ccls.call", "args": { "levels": 3, "callee": true }}]
        }