<commit_before>*LanguageClient*  Language Server Protocol support for neovim


==============================================================================
CONTENTS                                               *LanguageClientContents*

1. Usage ....................... |LanguageClientUsage|
2. Configuration ............... |LanguageClientConfiguration|
3. Commands .................... |LanguageClientCommands|
4. Functions ................... |LanguageClientFunctions|
5. Events ...................... |LanguageClientEvents|
6. License ..................... |LanguageClientLicense|
7. Bugs ........................ |LanguageClientBugs|
8. Contributing ................ |LanguageClientContributing|

==============================================================================
1. Usage                                                 *LanguageClientUsage*

Before using of LanguageClient, it is necessary to specify commands that are
going to be used to start language server. See |LanguageClient_serverCommands|
for detail. Here is a simple example config: >

    let g:LanguageClient_serverCommands = {
        \ 'rust': ['rustup', 'run', 'nightly', 'rls'],
        \ }

After that, open a file with one of the above filetypes, functionalities
provided by language servers should be available out of the box.

At this point, call any provided function as you like. See
|LanguageClientFunctions| for a complete list of functions. Usually one would
like to map these functions to shortcuts, for example: >

    nnoremap <silent> K :call LanguageClient_textDocument_hover()<CR>
    nnoremap <silent> gd :call LanguageClient_textDocument_definition()<CR>
    nnoremap <silent> <F2> :call LanguageClient_textDocument_rename()<CR>

If one is using deoplete/nvim-completion-manager at the same time, completion
should work out of the box. Otherwise, completion is available with 'C-X C-O'
('omnifunc').

Alternatively, set 'completefunc': >
    set completefunc=LanguageClient#complete
<
If the language server supports, diagnostic/lint information will be displayed
via gutter and syntax highlighting with real time editing. At the same time,
those info are populated into quickfix list (or location list), which can be
accessed by regular quickfix/location list operations.

To use the language server with Vim's formatting operator |gq|, set 'formatexpr': >
    set formatexpr=LanguageClient_textDocument_rangeFormatting()
<

==============================================================================
2. Configuration                                 *LanguageClientConfiguration*

2.1 g:LanguageClient_serverCommands          *g:LanguageClient_serverCommands*

String to list map. Defines commands to start language server for specific
filetype. For example: >

    let g:LanguageClient_serverCommands = {
        \ 'rust': ['rustup', 'run', 'nightly', 'rls'],
        \ }

Or tcp connection string to the server, >
    let g:LanguageCLient_servercommands = {
        \ 'javascript': ['tcp://127.0.0.1:2089'],
        \ }

Default: {}
Valid Option: Map<String, List<String>>
<commit_msg>Update function names in doc.<commit_after>*LanguageClient*  Language Server Protocol support for neovim


==============================================================================
CONTENTS                                               *LanguageClientContents*

1. Usage ....................... |LanguageClientUsage|
2. Configuration ............... |LanguageClientConfiguration|
3. Commands .................... |LanguageClientCommands|
4. Functions ................... |LanguageClientFunctions|
5. Events ...................... |LanguageClientEvents|
6. License ..................... |LanguageClientLicense|
7. Bugs ........................ |LanguageClientBugs|
8. Contributing ................ |LanguageClientContributing|

==============================================================================
1. Usage                                                 *LanguageClientUsage*

Before using of LanguageClient, it is necessary to specify commands that are
going to be used to start language server. See |LanguageClient_serverCommands|
for detail. Here is a simple example config: >

    let g:LanguageClient_serverCommands = {
        \ 'rust': ['rustup', 'run', 'nightly', 'rls'],
        \ }

After that, open a file with one of the above filetypes, functionalities
provided by language servers should be available out of the box.

At this point, call any provided function as you like. See
|LanguageClientFunctions| for a complete list of functions. Usually one would
like to map these functions to shortcuts, for example: >

    nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
    nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
    nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>

If one is using deoplete/nvim-completion-manager at the same time, completion
should work out of the box. Otherwise, completion is available with 'C-X C-O'
('omnifunc').

Alternatively, set 'completefunc': >
    set completefunc=LanguageClient#complete
<
If the language server supports, diagnostic/lint information will be displayed
via gutter and syntax highlighting with real time editing. At the same time,
those info are populated into quickfix list (or location list), which can be
accessed by regular quickfix/location list operations.

To use the language server with Vim's formatting operator |gq|, set 'formatexpr': >
    set formatexpr=LanguageClient#textDocument_rangeFormatting()
<

==============================================================================
2. Configuration                                 *LanguageClientConfiguration*

2.1 g:LanguageClient_serverCommands          *g:LanguageClient_serverCommands*

String to list map. Defines commands to start language server for specific
filetype. For example: >

    let g:LanguageClient_serverCommands = {
        \ 'rust': ['rustup', 'run', 'nightly', 'rls'],
        \ }

Or tcp connection string to the server, >
    let g:LanguageCLient_servercommands = {
        \ 'javascript': ['tcp://127.0.0.1:2089'],
        \ }

Default: {}
Valid Option: Map<String, List<String>>

{'fraction_non_alphanumeric': 0.19513374154044474, 'fraction_numerical': 0.007412181759587496, 'mean_word_length': 3.1826145552560647, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '773707', 'n_tokens_mistral': 1489, 'n_tokens_neox': 1436, 'n_words': 544}