diff --git a/doc/youcompleteme.txt b/doc/youcompleteme.txt index b2df48ccad..f4403903d8 100644 --- a/doc/youcompleteme.txt +++ b/doc/youcompleteme.txt @@ -53,7 +53,7 @@ Contents ~ 4. Option 2: Provide the flags manually |youcompleteme-option-2-provide-flags-manually| 5. Errors during compilation |youcompleteme-errors-during-compilation| 6. Java Semantic Completion |youcompleteme-java-semantic-completion| - 1. Java quick Start |youcompleteme-java-quick-start| + 1. Java Quick Start |youcompleteme-java-quick-start| 2. Java Project Files |youcompleteme-java-project-files| 3. Diagnostic display - Syntastic |youcompleteme-diagnostic-display-syntastic| 4. Diagnostic display - Eclim |youcompleteme-diagnostic-display-eclim| @@ -213,7 +213,7 @@ Image: Gitter room [1] Image: Build status [3] Image: Coverage status [5] *youcompleteme-help-advice-support* Help, Advice, Support ~ -Looking for help, advice or support? Having problems getting YCM to work? +Looking for help, advice, or support? Having problems getting YCM to work? First carefully read the installation instructions for your OS. We recommend you use the supplied 'install.py' - the "full" installation guide is for rare, @@ -222,8 +222,8 @@ advanced use cases and most users should use 'install.py'. If the server isn't starting and you're getting a "YouCompleteMe unavailable" error, check the Troubleshooting [7] guide. -Next check the User Guide section on the semantic completer that you are using. -For C/C++/Objective-C/Objective-C++/CUDA, you _must_ read this section. +Next, check the User Guide section on the semantic completer that you are +using. For C/C++/Objective-C/Objective-C++/CUDA, you _must_ read this section. Finally, check the FAQ [8]. @@ -306,7 +306,7 @@ Intro ~ YouCompleteMe is a fast, as-you-type, fuzzy-search code completion, comprehension and refactoring engine for Vim [10]. -It has several completion engines built in and supports any protocol-compliant +It has several completion engines built-in and supports any protocol-compliant Language Server, so can work with practically any language. YouCompleteMe contains: @@ -322,12 +322,12 @@ contains: - a jdt.ls [17]-based completion engine for Java. - a generic Language Server Protocol implementation for any language - and an omnifunc-based completer that uses data from Vim's omnicomplete - system to provide semantic completions for many other languages (Ruby, PHP + system to provide semantic completions for many other languages (Ruby, PHP, etc.). Image: YouCompleteMe GIF completion demo (see reference [18]) -Here's an explanation of what happens in the last GIF demo above. +Here's an explanation of what happened in the last GIF demo above. First, realize that **no keyboard shortcuts had to be pressed** to get the list of completion candidates at any point in the demo. The user just types and the @@ -400,7 +400,7 @@ Below we can see YCM being able to do a few things: - Go to declaration/definition - Expand 'auto' in C++ - Fix some common errors, and provide refactorings, with |FixIt| -- Not shown in the GIF is |GoToImplementation| and |GoToType| for servers +- Not shown in the GIF are |GoToImplementation| and |GoToType| for servers that support it. Image: YouCompleteMe GIF subcommands demo (see reference [23]) @@ -467,10 +467,10 @@ you used to run 'install.py' and will use that when launching the server, so if you usually use anaconda, then make sure to use the full path to a real cpython3, e.g. '/usr/bin/python3 install.py --all' etc. -Our policy is to support the python3 version that's availble in the latest -Ubuntu LTS (similar to our Vim version policy). We don't increase the python +Our policy is to support the python3 version that's available in the latest +Ubuntu LTS (similar to our Vim version policy). We don't increase the Python runtime version without a reason, though. Typically, we do this when the -current python version wer're using goes out of support. At that time we will +current python version we're using goes out of support. At that time we will typically pick a version that will be supported for a number of years. ------------------------------------------------------------------------------- @@ -521,7 +521,7 @@ Quick start, installing all completers ~ - Install mono from Mono Project [27] (NOTE: on Intel Macs you can also 'brew install mono'. On arm Macs, you may require Rosetta) -- For java support you must install a JDK, one way to do this is with +- For Java support you must install a JDK, one way to do this is with Homebrew: > $ brew install java @@ -649,7 +649,7 @@ Quick start, installing all completers ~ > apt install build-essential cmake vim-nox python3-dev < -- Install mono-complete, go, node, java and npm +- Install mono-complete, go, node, java, and npm > sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg @@ -670,7 +670,7 @@ These instructions (using 'install.py') are the quickest way to install YouCompleteMe, however they may not work for everyone. If the following instructions don't work for you, check out the full installation guide. -Make sure you have a supported version of Vim with Python 3 support, and a +Make sure you have a supported version of Vim with Python 3 support and a supported compiler. The latest LTS of Ubuntu is the minimum platform for simple installation. For earlier releases or other distributions, you may have to do some work to acquire the dependencies. @@ -681,8 +681,9 @@ If your Vim version is too old, you may need to compile Vim from source [34] Install YouCompleteMe with Vundle [26]. **Remember:** YCM is a plugin with a compiled component. If you **update** YCM -using Vundle and the 'ycm_core' library APIs have changed (happens rarely), YCM -will notify you to recompile it. You should then rerun the install process. +using Vundle and the 'ycm_core' library APIs have changed (which happens +rarely), YCM will notify you to recompile it. You should then rerun the +installation process. Install development tools, CMake, and Python headers: @@ -722,7 +723,7 @@ The following additional language support options are available: 'install.py'. To simply compile with everything enabled, there's a '--all' flag. So, to -install with all language features, ensure 'xbuild', 'go', 'node' and 'npm' +install with all language features, ensure 'xbuild', 'go', 'node', and 'npm' tools are installed and in your 'PATH', then simply run: > cd ~/.vim/bundle/YouCompleteMe @@ -1004,7 +1005,7 @@ Java ~ - Renaming symbols ('RefactorRename ') - Code formatting (|Format|) - Organize imports (|OrganizeImports|) -- Detection of java projects +- Detection of Java projects - Execute custom server command ('ExecuteCommand ') - Management of 'jdt.ls' server instance - Semantic highlighting @@ -1041,7 +1042,7 @@ with or without marks: Use the TAB key to accept a completion and continue pressing TAB to cycle -through the completions. Use Shift-TAB to cycle backwards. Note that if you're +through the completions. Use Shift-TAB to cycle backward. Note that if you're using console Vim (that is, not gvim or MacVim) then it's likely that the Shift-TAB binding will not work because the console will not pass it to Vim. You can remap the keys; see the Options section below. @@ -1083,10 +1084,10 @@ The subsequence filter removes any completions that do not match the input, but then the sorting system kicks in. It's actually very complicated and uses lots of factors, but suffice it to say that "word boundary" (WB) subsequence character matches are "worth" more than non-WB matches. In effect, this means -given an input of "gua", the completion "getUserAccount" would be ranked higher -in the list than the "Fooguxa" completion (both of which are subsequence -matches). A word-boundary character are all capital characters, characters -preceded by an underscore and the first letter character in the completion +that given an input of "gua", the completion "getUserAccount" would be ranked +higher in the list than the "Fooguxa" completion (both of which are subsequence +matches). Word-boundary characters are all capital characters, characters +preceded by an underscore, and the first letter character in the completion string. ------------------------------------------------------------------------------- @@ -1127,7 +1128,7 @@ Semantic highlighting ~ **NOTE**: This feature is highly experimental and offered in the hope that it is useful. It shall not be considered stable; if you find issues with it, feel -free to report them however. +free to report them, however. Semantic highlighting is the process where the buffer text is coloured according to the underlying semantic type of the word, rather than classic @@ -1200,9 +1201,9 @@ When 'g:ycm_enable_inlay_hints' (globally) or 'b:ycm_enable_inlay_hints' (for a specific buffer) is set to '1', then YCM will insert inlay hints as supported by the language semantic engine. -An inlay hint is text rendered on the screen which is not part of the buffer -and is often used to mark up the type or name of arguments, parameters, etc. -which help the developer understand the semantics of the code. +An inlay hint is text that is rendered on the screen that is not part of the +buffer and is often used to mark up the type or name of arguments, parameters, +etc. which help the developer understand the semantics of the code. Here are some examples: @@ -1286,7 +1287,7 @@ Some of the features of clangd: unit(TU). - **Code navigation**: Clangd provides all the GoTo requests libclang - provides and it improves those using the above mentioned index information + provides and it improves those using the above-mentioned index information to contain project-wide information rather than just the current TU. - **Rename**: Clangd can perform semantic rename operations on the current @@ -1323,9 +1324,9 @@ Supported architectures are: Typically, clangd is installed by the YCM installer (either with '--all' or with '--clangd-completer'). This downloads a pre-built 'clangd' binary for your -architecture. If your OS or architecture is not supported or too old, you can -install a compatible 'clangd' and use |g:ycm_clangd_binary_path| to point to -it. +architecture. If your OS or architecture is not supported or is too old, you +can install a compatible 'clangd' and use |g:ycm_clangd_binary_path| to point +to it. **_libclang_**: @@ -1343,13 +1344,13 @@ version that YCM requires. Currently YCM requires **_clang 17.0.1_**. *youcompleteme-compile-flags* Compile flags ~ -In order to perform semantic analysis such as code completion, |GoTo| and +In order to perform semantic analysis such as code completion, |GoTo|, and diagnostics, YouCompleteMe uses 'clangd', which makes use of clang compiler, sometimes also referred to as LLVM. Like any compiler, clang also requires a set of compile flags in order to parse your code. Simply put: If clang can't parse your code, YouCompleteMe can't provide semantic analysis. -There are 2 methods which can be used to provide compile flags to clang: +There are 2 methods that can be used to provide compile flags to clang: ------------------------------------------------------------------------------- *youcompleteme-option-1-use-compilation-database-53* @@ -1382,15 +1383,15 @@ searching the directories and lets clangd take over and handle the flags. *youcompleteme-option-2-provide-flags-manually* Option 2: Provide the flags manually ~ -If you don't have a compilation database, or aren't able to generate one, you +If you don't have a compilation database or aren't able to generate one, you have to tell YouCompleteMe how to compile your code some other way. Every C-family project is different. It is not possible for YCM to guess what compiler flags to supply for your project. Fortunately, YCM provides a mechanism for you to generate the flags for a particular file with _arbitrary -complexity_. This is achieved by requiring you to provide a Python module which -implements a trivial function which, given the file name as argument, returns a -list of compiler flags to use to compile that file. +complexity_. This is achieved by requiring you to provide a Python module that +implements a trivial function that, given the file name as an argument, returns +a list of compiler flags to use to compile that file. YCM looks for a '.ycm_extra_conf.py' file in the directory of the opened file or in any directory above it in the hierarchy (recursively); when the file is @@ -1462,7 +1463,7 @@ Java Semantic Completion ~ ------------------------------------------------------------------------------- *youcompleteme-java-quick-start* -Java quick Start ~ +Java Quick Start ~ 1. Ensure that you have enabled the Java completer. See the installation guide for details. @@ -1483,19 +1484,20 @@ Java quick Start ~ Java Project Files ~ In order to provide semantic analysis, the Java completion engine requires -knowledge of your project structure. In particular it needs to know the class +knowledge of your project structure. In particular, it needs to know the class path to use, when compiling your code. Fortunately jdt.ls [17] supports eclipse project files [60], maven projects [61] and gradle projects [62]. -**NOTE:** Our recommendation is to use either maven or gradle projects. +**NOTE:** Our recommendation is to use either Maven or Gradle projects. ------------------------------------------------------------------------------- *youcompleteme-diagnostic-display-syntastic* Diagnostic display - Syntastic ~ -The native support for Java includes YCM's native realtime diagnostics display. -This can conflict with other diagnostics plugins like Syntastic, so when -enabling Java support, please **manually disable Syntastic Java diagnostics**. +The native support for Java includes YCM's native real-time diagnostics +display. This can conflict with other diagnostics plugins like Syntastic, so +when enabling Java support, please **manually disable Syntastic Java +diagnostics**. Add the following to your 'vimrc': > @@ -1505,9 +1507,9 @@ Add the following to your 'vimrc': *youcompleteme-diagnostic-display-eclim* Diagnostic display - Eclim ~ -The native support for Java includes YCM's native realtime diagnostics display. -This can conflict with other diagnostics plugins like Eclim, so when enabling -Java support, please **manually disable Eclim Java diagnostics**. +The native support for Java includes YCM's native real-time diagnostics +display. This can conflict with other diagnostics plugins like Eclim, so when +enabling Java support, please **manually disable Eclim Java diagnostics**. Add the following to your 'vimrc': > @@ -1520,14 +1522,14 @@ native Java support. This can be done temporarily with ':EclimDisable'. *youcompleteme-eclipse-projects* Eclipse Projects ~ -Eclipse style projects require two files: .project [60] and .classpath [63]. +Eclipse-style projects require two files: .project [60] and .classpath [63]. If your project already has these files due to previously being set up within -eclipse, then no setup is required. jdt.ls [17] should load the project just +Eclipse, then no setup is required. jdt.ls [17] should load the project just fine (it's basically eclipse after all). However, if not, it is possible (easy in fact) to craft them manually, though -it is not recommended. You're better off using gradle or maven (see below). +it is not recommended. You're better off using Gradle or Maven (see below). A simple eclipse style project example [64] can be found in the ycmd test directory. Normally all that is required is to copy these files to the root of @@ -1543,14 +1545,14 @@ located (paths are relative to the .project file itself): < **NOTE**: The eclipse project and classpath files are not a public interface and it is highly recommended to use Maven or Gradle project definitions if you -don't already use eclipse to manage your projects. +don't already use Eclipse to manage your projects. ------------------------------------------------------------------------------- *youcompleteme-maven-projects* Maven Projects ~ Maven needs a file named pom.xml [61] in the root of the project. Once again a -simple pom.xml [65] can be found in ycmd source. +simple pom.xml [65] can be found in the ycmd source. The format of pom.xml [61] files is way beyond the scope of this document, but we do recommend using the various tools that can generate them for you, if @@ -1563,9 +1565,9 @@ Gradle Projects ~ Gradle projects require a build.gradle [62]. Again, there is a trivial example in ycmd's tests [66]. -The format of build.gradle [62] files is way beyond the scope of this document, -but we do recommend using the various tools that can generate them for you, if -you're not familiar with them already. +The format of build.gradle [62] files are way beyond the scope of this +document, but we do recommend using the various tools that can generate them +for you if you're not familiar with them already. Some users have experienced issues with their jdt.ls when using the Groovy language for their build.gradle. As such, try using Kotlin [67] instead. @@ -1607,7 +1609,7 @@ of letting YCM know about your solution files. Automatically discovered solution files ~ YCM will scan all parent directories of the file currently being edited and -look for file with '.sln' extension. +look for a file with '.sln' extension. ------------------------------------------------------------------------------- *youcompleteme-manually-specified-solution-files* @@ -1709,8 +1711,8 @@ If you need further control on how to add paths to 'sys.path', you should define the 'PythonSysPath( **kwargs )' function in the '.ycm_extra_conf.py' file. Its keyword arguments are 'sys_path' which contains the default 'sys.path', and 'interpreter_path' which is the path to the Python interpreter. -Here's a trivial example that insert the '/path/to/third_party/package' path at -the second position of 'sys.path': +Here's a trivial example that inserts the '/path/to/third_party/package' path +at the second position of 'sys.path': > def PythonSysPath( **kwargs ): sys_path = kwargs[ 'sys_path' ] @@ -1723,8 +1725,8 @@ A more advanced example can be found in YCM's own '.ycm_extra_conf.py' [69]. *youcompleteme-configuring-through-vim-options* Configuring through Vim options ~ -You may find inconvenient to have to create a '.ycm_extra_conf.py' file at the -root of each one of your projects in order to set the path to the Python +You may find it inconvenient to have to create a '.ycm_extra_conf.py' file at +the root of each one of your projects in order to set the path to the Python interpreter and/or add paths to 'sys.path' and would prefer to be able to configure those through Vim options. Don't worry, this is possible by using the |g:ycm_extra_conf_vim_data| option and creating a global extra configuration @@ -1805,7 +1807,7 @@ affect you if you were already using Tern [74] but you are encouraged to do the switch by deleting the 'third_party/ycmd/third_party/tern_runtime/node_modules' directory in YCM folder. If you are a new user but still want to use Tern [74], you should pass the '--js-completer' option to the 'install.py' script during -installation. Further instructions on how to setup YCM with Tern [74] are +installation. Further instructions on how to set up YCM with Tern [74] are available on the wiki [75]. All JavaScript and TypeScript features are provided by the TSServer [15] @@ -1875,9 +1877,9 @@ Each dictionary contains the following keys: should be used for. - 'project_root_files' (list of string, optional): List of filenames to - search for when trying to determine the project root. + search for when trying to determine the project's root. -- 'cmdline' (list of string, optional): If supplied, the server is started +- 'cmdline' (list of strings, optional): If supplied, the server is started with this command line (each list element is a command line word). Typically, the server should be started with STDIO communication. If not supplied, 'port' must be supplied. @@ -1910,7 +1912,7 @@ examples of configuring the likes of PHP, Ruby, Kotlin, D, and many, many more. } < The 'ls' key tells YCM that the dictionary should be passed to the LSP server. -For each of the LSP server's configuration you should look up the respective +For each of the LSP server's configuration, you should look up the respective server's documentation. Some servers request settings from arbitrary 'sections' of configuration. There @@ -1930,7 +1932,7 @@ config required by the server. For example: } } < -The sections and options/values are complete server-specific and rarely well +The sections and options/values are completely server-specific and rarely well documented. ------------------------------------------------------------------------------- @@ -1988,7 +1990,7 @@ Completer API. Diagnostic Display ~ YCM will display diagnostic notifications for the C-family, C#, Go, Java, -JavaScript, Rust and TypeScript languages. Since YCM continuously recompiles +JavaScript, Rust, and TypeScript languages. Since YCM continuously recompiles your file as you type, you'll get notified of errors and warnings in your file as fast as possible. @@ -2105,11 +2107,11 @@ e.g. - 'nmap yfd (YCMFindSymbolInDocument)' When searching, YCM opens a prompt buffer at the top of the screen for the -input, and puts you in insert mode. This means that you can hit '' to go +input and puts you in insert mode. This means that you can hit '' to go into normal mode and use any other input commands that are supported in prompt buffers. As you type characters, the search is updated. -Intially, results are queried from all open filetypes. You can hit '' to +Initially, results are queried from all open filetypes. You can hit '' to switch to just the current filetype while the popup is open. While the popup is open, the following keys are intercepted: @@ -2180,7 +2182,7 @@ This command shows the full diagnostic text when the user's cursor is on the line with the diagnostic. An options argument can be passed. If the argument is 'popup' the diagnostic -text will be displayed in a popup at cursor position. +text will be displayed in a popup at the cursor position. If you prefer the detailed diagnostic to always be shown in a popup, then 'let g:ycm_show_detailed_diag_in_popup=1'. @@ -2209,7 +2211,7 @@ already open) in the editor. Only for debugging purposes. The *:YcmCompleter* command This command gives access to a number of additional IDE-like features in YCM, -for things like semantic GoTo, type information, FixIt and refactoring. +for things like semantic GoTo, type information, FixIt, and refactoring. This command accepts a range that can either be specified through a selection in one of Vim's visual modes (see ':h visual-use') or on the command line. For @@ -2254,8 +2256,8 @@ the cursor, the subcommands add entries to Vim's 'jumplist' so you can use 'CTRL-O' to jump back to where you were before invoking the command (and 'CTRL-I' to jump forward; see ':h jumplist' for details). If there is more than one destination, the quickfix list (see ':h quickfix') is populated with the -available locations and opened to full width at the bottom of the screen. You -can change this behavior by using the |YcmQuickFixOpened| autocommand. +available locations and opened to the full width at the bottom of the screen. +You can change this behavior by using the |YcmQuickFixOpened| autocommand. ------------------------------------------------------------------------------- The *GoToInclude* subcommand @@ -2268,7 +2270,7 @@ Supported in filetypes: 'c, cpp, objc, objcpp, cuda' The *GoToAlternateFile* subcommand Jump to the associated file, as defined by the language server. Typically this -will jump you to the associated header file for a c or c++ translation unit. +will jump you to the associated header file for a C or C++ translation unit. Supported in filetypes: 'c, cpp, objc, objcpp, cuda' (clangd only) @@ -2313,7 +2315,7 @@ WARNING: This command trades correctness for speed! Same as the |GoTo| command except that it doesn't recompile the file with libclang before looking up nodes in the AST. This can be very useful when -you're editing files that take long to compile but you know that you haven't +you're editing files that take time to compile but you know that you haven't made any changes since the last parse that would lead to incorrect jumps. When you're just browsing around your codebase, this command can spare you quite a bit of latency. @@ -2370,8 +2372,8 @@ Supported in filetypes: 'go, java, javascript, typescript' ------------------------------------------------------------------------------- The *GoToDocumentOutline* subcommand -Provides a list of symbols in current document, in the quickfix list. See also -interactive symbol search. +Provides a list of symbols in the current document, in the quickfix list. See +also interactive symbol search. Supported in filetypes: 'c, cpp, objc, objcpp, cuda, go, java, rust' @@ -2382,7 +2384,7 @@ Populate the quickfix list with the callers, or callees respectively, of the function associated with the current cursor position. The semantics of this differ depending on the filetype and language server. -Only supported for LSP servers which provide the 'callHierarchyProvider' +Only supported for LSP servers that provide the 'callHierarchyProvider' capability. ------------------------------------------------------------------------------- @@ -2390,7 +2392,7 @@ capability. Semantic Information Commands ~ These commands are useful for finding static information about the code, such -as the types of variables, viewing declarations and documentation strings. +as the types of variables, viewing declarations, and documentation strings. ------------------------------------------------------------------------------- The *GetType* subcommand @@ -2416,7 +2418,7 @@ WARNING: This command trades correctness for speed! Same as the |GetType| command except that it doesn't recompile the file with libclang before looking up nodes in the AST. This can be very useful when -you're editing files that take long to compile but you know that you haven't +you're editing files that take time to compile but you know that you haven't made any changes since the last parse that would lead to incorrect type. When you're just browsing around your codebase, this command can spare you quite a bit of latency. @@ -2518,7 +2520,7 @@ given warning, or where multiple diagnostics are reported for the current line, or multiple refactoring tweaks are available), the options are presented and one can be selected. -Completers which provide diagnostics may also provide trivial modifications to +Completers that provide diagnostics may also provide trivial modifications to the source in order to correct the diagnostic. Examples include syntax errors such as missing trailing semi-colons, spurious characters, or other errors which the semantic engine can deterministically suggest corrections. A small @@ -2558,7 +2560,7 @@ The 'RefactorRename ' subcommand ~ In supported file types, this command attempts to perform a semantic rename of the identifier under the cursor. This includes renaming declarations, -definitions and usages of the identifier, or any other language-appropriate +definitions, and usages of the identifier, or any other language-appropriate action. The specific behavior is defined by the semantic engine in use. Similar to |FixIt|, this command applies automatic modifications to your source @@ -2573,7 +2575,7 @@ typescript, rust, cs' *youcompleteme-python-refactorings* Python refactorings ~ -The following additional commands are supported for python: +The following additional commands are supported for Python: - 'RefactorInline' - 'RefactorExtractVariable' @@ -2608,7 +2610,7 @@ can be undone using Vim's powerful undo features (see ':help undo'). Note that Vim's undo is per-buffer, so to undo all changes, the undo commands must be applied in each modified buffer separately. -**NOTE:** While applying modifications, Vim may find files which are already +**NOTE:** While applying modifications, Vim may find files that are already open and have a swap file. The command is aborted if you select Abort or Quit in any such prompts. This leaves the Refactor operation partially complete and must be manually corrected using Vim's undo features. The quickfix list is @@ -2632,7 +2634,7 @@ typescript, rust, cs' The *OrganizeImports* subcommand This command removes unused imports and sorts imports in the current file. It -can also group imports from the same module in TypeScript and resolves imports +can also group imports from the same module in TypeScript and resolve imports in Java. Supported in filetypes: 'java, javascript, typescript' @@ -2649,9 +2651,9 @@ flags. *ExecuteCommand-args* The 'ExecuteCommand ' subcommand ~ -Some LSP completers (currently only Java completers) support executing server -specific commands. Consult the jdt.ls [17] documentation to find out what -commands are supported and which arguments are expected. +Some LSP completers (currently only Java completers) support executing +server-specific commands. Consult the jdt.ls [17] documentation to find out +what commands are supported and which arguments are expected. The support for 'ExecuteCommand' was implemented to support plugins like Vimspector [88] to debug java, but isn't limited to that specific use case. @@ -2669,7 +2671,7 @@ rust, typescript' The *ReloadSolution* subcommand Instruct the Omnisharp-Roslyn server to clear its cache and reload all files -from disk. This is useful when files are added, removed, or renamed in the +from the disk. This is useful when files are added, removed, or renamed in the solution, files are changed outside of Vim, or whenever Omnisharp-Roslyn cache is out-of-sync. @@ -2709,7 +2711,7 @@ For example: The 'youcompleteme#GetCommandResponse( ... )' function ~ Run a completer subcommand and return the result as a string. This can be -useful for example to display the 'GetGoc' output in a popup window, e.g.: +useful for example to display the |GetDoc| output in a popup window, e.g.: > let s:ycm_hover_popup = -1 function s:Hover() @@ -2784,7 +2786,7 @@ Again, see |g:ycm_auto_hover| for proper hover support. called this function. **NOTE**: Only one command request can be outstanding at once. Attempting to -request a second responses while the first is outstanding will result in the +request a second response while the first is outstanding will result in the second callback being immediately called with "''". ------------------------------------------------------------------------------- @@ -2806,7 +2808,7 @@ For instance: wincmd K " Set the window height to 5. 5wincmd _ - " Switch back to working window. + " Switch back to the working window. wincmd p endfunction @@ -2887,7 +2889,7 @@ the number of suggestions from the identifier-based engine. A special value of '0' means there is no limit. **NOTE:** Setting this option to '0' or to a value greater than '100' is not -recommended as it will slow down completion when there are a very large number +recommended as it will slow down completion when there is a very large number of suggestions. Default: '50' @@ -2898,7 +2900,7 @@ Default: '50' The *g:ycm_max_num_candidates_to_detail* option Some completion engines require completion candidates to be 'resolved' in order -to get detailed info such as inline documentation, method signatures etc. This +to get detailed info such as inline documentation, method signatures, etc. This information is displayed by YCM in the preview window, or if 'completeopt' contains 'popup', in the info popup next to the completion menu. @@ -2915,12 +2917,12 @@ need to change this, as YCM will work out an appropriate value based on your 'completeopt' and |g:ycm_add_preview_to_completeopt| settings. However, you may override this calculation by setting this value to a number: -- '-1' - Resolve all candidates up front -- '0' - Never resolve any candidates up front. -- '> 0' - Resolve up to this many candidates up front. If the number of +- '-1' - Resolve all candidates upfront +- '0' - Never resolve any candidates upfront. +- '> 0' - Resolve up to this many candidates upfront. If the number of candidates is greater than this value, no candidates are resolved. -In the later two cases, if 'completeopt' contains 'popup', then candidates are +In the latter two cases, if 'completeopt' contains 'popup', then candidates are resolved on demand asynchronously. Default: @@ -2942,7 +2944,7 @@ identifier-based engine shown in the completion menu. A special value of '0' means there is no limit. **NOTE:** Setting this option to '0' or to a value greater than '100' is not -recommended as it will slow down completion when there are a very large number +recommended as it will slow down completion when there is a very large number of suggestions. Default: '10' @@ -2999,9 +3001,9 @@ filetype. The filetype should then be present in the whitelist either directly ('cpp' key in the whitelist) or indirectly through the special '*' key. It should _not_ be present in the blacklist. -Filetypes that are blocked by the either of the lists will be completely -ignored by YCM, meaning that neither the identifier-based completion engine nor -the semantic engine will operate in them. +Filetypes that are blocked by either of the lists will be completely ignored by +YCM, meaning that neither the identifier-based completion engine nor the +semantic engine will operate in them. You can get the filetype of the current file in Vim with ':set ft?'. @@ -3105,7 +3107,7 @@ When set, this option turns on YCM's diagnostic display features. See the _Diagnostic display_ section in the _User Manual_ for more details. Specific parts of the diagnostics UI (like the gutter signs, text highlighting, -diagnostic echo and auto location list population) can be individually turned +diagnostic echo, and auto location list population) can be individually turned on or off. See the other options below for details. Note that YCM's diagnostics UI is only supported for C-family languages. @@ -3197,7 +3199,7 @@ enough space, for example: **NOTE**: It's _strongly_ recommended to also set |g:ycm_update_diagnostics_in_insert_mode| to '0' when using 'virtual-text' for -diagnostics. This is due to the increased amount distraction provided by +diagnostics. This is due to the increased amount of distraction provided by drawing diagnostics next to your input position. This option is part of the Syntastic compatibility layer; if the option is not @@ -3313,7 +3315,7 @@ The following filter types are supported: Default: '{}' -The following example will do, for java filetype only: - Remove **all** error +The following example will do, for Java filetype only: - Remove **all** error level diagnostics, and, - Also remove anything that contains 'taco' > let g:ycm_filter_diagnostics = { @@ -3485,7 +3487,7 @@ When this option is set to '1', YCM and the ycmd completion server [44] will keep the logfiles around after shutting down (they are deleted on shutdown by default). -To see where the logfiles are, call |:YcmDebugInfo|. +To see where the log files are, call |:YcmDebugInfo|. Default: '0' > @@ -3635,7 +3637,7 @@ Default: "['', '']" The *g:ycm_key_list_previous_completion* option This option controls the key mappings used to select the previous completion -string. Invoking any of them repeatedly cycles backwards through the completion +string. Invoking any of them repeatedly cycles backward through the completion list. Note that one of the defaults is '' which means Shift-TAB. That mapping @@ -3672,7 +3674,7 @@ searching for top-level functions and classes. Console Vim (not Gvim or MacVim) passes '' to Vim when the user types '' so YCM will make sure that '' is used in the map command when you're editing in console Vim, and '' in GUI Vim. This means that you -can just press '' in both console and GUI Vim and YCM will do the +can just press '' in both the console and GUI Vim and YCM will do the right thing. Setting this option to an empty string will make sure no mapping is created. @@ -3725,8 +3727,8 @@ Default: "''" The *g:ycm_confirm_extra_conf* option When this option is set to '1' YCM will ask once per '.ycm_extra_conf.py' file -if it is safe to be loaded. This is to prevent execution of malicious code from -a '.ycm_extra_conf.py' file you didn't write. +if it is safe to be loaded. This is to prevent the execution of malicious code +from a '.ycm_extra_conf.py' file you didn't write. To selectively get YCM to ask/not ask about loading certain '.ycm_extra_conf.py' files, see the |g:ycm_extra_conf_globlist| option. @@ -3832,8 +3834,8 @@ The *g:ycm_cache_omnifunc* option Some omnicompletion engines do not work well with the YCM cacheā€”in particular, they might not produce all possible results for a given prefix. By unsetting this option you can ensure that the omnicompletion engine is re-queried on -every keypress. That will ensure all completions will be presented, but might -cause stuttering and lagginess if the omnifunc is slow. +every keypress. That will ensure all completions will be presented but might +cause stuttering and lag if the omnifunc is slow. Default: '1' > @@ -3892,8 +3894,8 @@ Default: 1000 ------------------------------------------------------------------------------- The *g:ycm_use_clangd* option -This option controls whether **clangd** should be used as completion engine for -C-family languages. Can take one of the following values: '1', '0', with +This option controls whether **clangd** should be used as a completion engine +for C-family languages. Can take one of the following values: '1', '0', with meanings: - '1': YCM will use clangd if clangd binary exists in third party or it was @@ -4031,7 +4033,7 @@ With async diagnostics, LSP servers might send new diagnostics mid-typing. If seeing these new diagnostics while typing is not desired, this option can be set to 0. -When this option is set to '0', diagnostic signs, virtual text and highlights +When this option is set to '0', diagnostic signs, virtual text, and highlights are cleared when entering insert mode and replaced when leaving insert mode. This reduces visual noise while editing. @@ -4072,7 +4074,7 @@ https://ycm-core.github.io/YouCompleteMe/. The author's homepage is https://val.markovic.io. -Please do **NOT** go to #vim, reddit, or stack overflow for support. Please +Please do **NOT** go to #vim, Reddit, or Stack Overflow for support. Please contact the YouCompleteMe maintainers directly using the contact details. ------------------------------------------------------------------------------- @@ -4086,7 +4088,7 @@ YouCompleteMe contributors *youcompleteme-sponsorship* Sponsorship ~ -If you like YCM so much that you're wiling to part with your hard-earned cash, +If you like YCM so much that you're willing to part with your hard-earned cash, please consider donating to one of the following charities, which are meaningful to the current maintainers (in no particular order): @@ -4098,7 +4100,7 @@ meaningful to the current maintainers (in no particular order): Please note: The YCM maintainers do not specifically endorse nor necessarily have any relationship with the above charities. Disclosure: It is noted that -one key maintainer is family with Trustees of Greyhound Rescue Wales. +one key maintainer is a family with Trustees of Greyhound Rescue Wales. =============================================================================== *youcompleteme-references*