mirror of
				https://github.com/MaskRay/ccls.git
				synced 2025-11-04 06:15:20 +00:00 
			
		
		
		
	Add vim-lsc
							parent
							
								
									a66ece42f2
								
							
						
					
					
						commit
						120fcdf745
					
				@ -13,7 +13,7 @@
 | 
			
		||||
 | 
			
		||||
- Atom IDE: [atom-ide-ccls]
 | 
			
		||||
- Emacs: [eglot] [emacs-ccls]
 | 
			
		||||
- (Neo)Vim: [coc.nvim] [ale] [LanguageClient-neovim] [vim-lsp]
 | 
			
		||||
- (Neo)Vim: [coc.nvim] [ale] [LanguageClient-neovim] [vim-lsp] [vim-lsc]
 | 
			
		||||
- VSCode: [vscode-ccls]
 | 
			
		||||
- Monaco Editor: [monaco-editor]
 | 
			
		||||
 | 
			
		||||
@ -30,5 +30,6 @@ https://github.com/MaskRay/ccls/wiki/FAQ#definitions and following sections.
 | 
			
		||||
[LanguageClient-neovim]: https://github.com/autozimu/LanguageClient-neovim
 | 
			
		||||
[lsp-mode]: https://github.com/emacs-lsp/lsp-mode
 | 
			
		||||
[vim-lsp]: https://github.com/prabirshrestha/vim-lsp
 | 
			
		||||
[vim-lsc]: https://github.com/natebosch/vim-lsc
 | 
			
		||||
[vscode-ccls]: https://github.com/MaskRay/vscode-ccls
 | 
			
		||||
[monaco-editor]: https://github.com/MaskRay/ccls/wiki/Monaco-Editor
 | 
			
		||||
@ -10,6 +10,7 @@
 | 
			
		||||
    + [[coc.nvim]]
 | 
			
		||||
    + [[LanguageClient-neovim]]
 | 
			
		||||
    + [[vim-lsp]]
 | 
			
		||||
    + [[vim-lsc]]
 | 
			
		||||
  - [[Visual Studio Code]]
 | 
			
		||||
  - [[Monaco Editor | https://github.com/MaskRay/ccls/wiki/Monaco-Editor]]
 | 
			
		||||
* [[Project Setup]]
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										30
									
								
								vim-lsc.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
									
									
								
								
								
							
						
						
									
										30
									
								
								vim-lsc.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
Install [vim-lsc](https://github.com/natebosch/vim-lsc) according to the instructions in its README.
 | 
			
		||||
 | 
			
		||||
Configure ccls as the language server (example for `cpp`, do similarly for other filetypes, as needed):
 | 
			
		||||
 | 
			
		||||
```viml
 | 
			
		||||
let g:lsc_server_commands = {
 | 
			
		||||
\ 'cpp': {
 | 
			
		||||
\    'command': 'ccls',
 | 
			
		||||
\    'message_hooks': {
 | 
			
		||||
\        'initialize': {
 | 
			
		||||
\            'initializationOptions': {'cache': {'directory': '/tmp/ccls/cache'}},
 | 
			
		||||
\            'rootUri': {m, p -> lsc#uri#documentUri(fnamemodify(findfile('compile_commands.json', expand('%:p') . ';'), ':p:h'))}
 | 
			
		||||
\        },
 | 
			
		||||
\    },
 | 
			
		||||
\  },
 | 
			
		||||
\}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
If the [compilation database](https://github.com/MaskRay/ccls/wiki/compile_commands.json) is correctly set, then things should work (e.g. reference highlight of the symbol under the cursor should be visible). See `|lsc-commands|` for the list of all available commands.
 | 
			
		||||
 | 
			
		||||
Default mappings are provided out-of-the-box (see `|lsc-default-map|`). To set custom mappings, change the values in `|g:lsc_auto_map|`, e.g.:
 | 
			
		||||
 | 
			
		||||
```viml
 | 
			
		||||
let g:lsc_auto_map = {
 | 
			
		||||
\  'GoToDefinition': '<M-d>',
 | 
			
		||||
\  'FindReferences': '<M-r>',
 | 
			
		||||
\}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
(optionally add `'defaults': v:true` to keep default values for other mappings that are not redefined).
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user