From c73b4aa5296024515316b3787d16380db4c3923f Mon Sep 17 00:00:00 2001 From: Ben Jackson Date: Sat, 15 Aug 2015 00:55:23 +0100 Subject: [PATCH] Update vim help Includes recent changes including FixIt and some other minor tweaks --- doc/youcompleteme.txt | 84 ++++++++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 24 deletions(-) diff --git a/doc/youcompleteme.txt b/doc/youcompleteme.txt index 4d439bae..0723dd57 100644 --- a/doc/youcompleteme.txt +++ b/doc/youcompleteme.txt @@ -37,12 +37,13 @@ Contents ~ 5. The |ClearCompilationFlagCache| subcommand 6. The |GetType| subcommand 7. The |GetParent| subcommand - 8. The |StartServer| subcommand - 9. The |StopServer| subcommand - 10. The |RestartServer| subcommand - 11. The |ReloadSolution| subcommand - 12. The |GoToImplementation| subcommand - 13. The |GoToImplementationElseDeclaration| subcommand + 8. The |FixIt| subcommand + 9. The |StartServer| subcommand + 10. The |StopServer| subcommand + 11. The |RestartServer| subcommand + 12. The |ReloadSolution| subcommand + 13. The |GoToImplementation| subcommand + 14. The |GoToImplementationElseDeclaration| subcommand 7. Options |youcompleteme-options| 1. The |g:ycm_min_num_of_chars_for_completion| option 2. The |g:ycm_min_num_identifier_candidate_chars| option @@ -119,9 +120,8 @@ Contents ~ 27. Completion doesn't work with the C++ standard library headers |youcompleteme-completion-doesnt-work-with-c-standard-library-headers| 28. Install YCM with NeoBundle [36] |youcompleteme-install-ycm-with-neobundle-36| 9. Contact |youcompleteme-contact| - 10. Project Management |youcompleteme-project-management| - 11. License |youcompleteme-license| - 12. References |youcompleteme-references| + 10. License |youcompleteme-license| + 11. References |youcompleteme-references| =============================================================================== *youcompleteme-introduction* @@ -833,7 +833,15 @@ You may want to map this command to a key; try putting 'nnoremap The *:YcmDiags* command Calling this command will fill Vim's 'locationlist' with errors or warnings if -any were detected in your file and then open it. +any were detected in your file and then open it. If a given error or warning +can be fixed by a call to ':YcmCompleter FixIt', then '(FixIt available)' is +appended to the error or warning text. See the |FixIt| completer subcommand for +more information. + +NOTE: The absense of '(FixIt available)' does not strictly imply a fix-it is +not available as not all completers are able to provide this indication. For +example, the c-sharp completer provides many fix-its but does not add this +additional indication. The |g:ycm_open_loclist_on_ycm_diags| option can be used to prevent the location list from opening, but still have it filled with new diagnostic data. @@ -999,6 +1007,42 @@ NOTE: Causes reparsing of the current translation unit. Supported in filetypes: 'c, cpp, objc, objcpp' +------------------------------------------------------------------------------- +The *FixIt* subcommand + +Where available, attempts to make changes to the buffer to correct the +diagnostic closest to the cursor position. + +Completers which 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. + +If no fix-it is available for the current line, or there is no diagnostic on +the current line, this command has no effect on the current buffer. If any +modifications are made, the number of changes made to the buffer is echo'd and +the user may use the editor's undo command to revert. + +When a diagnostic is available, and |g:ycm_echo_current_diagnostic| is set to +1, then the text '(FixIt)' is appended to the echo'd diagnostic when the +completer is able to add this indication. The text '(FixIt available)' is also +appended to the diagnostic text in the output of the |:YcmDiags| command for +any diagnostics with available fix-its (where the completer can provide this +indication). + +NOTE: Causes re-parsing of the current translation unit. + +NOTE: After applying a fix-it, the diagnostics UI is not immediately updated. +This is due to a technical restriction in vim, and moving the cursor, or +issuing the the |:YcmForceCompileAndDiagnostics| command will refresh the +diagnostics. Repeated invocations of the |FixIt| command on a given line, +however, _do_ apply all diagnostics as expected without requiring refreshing of +the diagnostics UI. This is particularly useful where there are multiple +diagnostics on one line, or where after fixing one diagnostic, another fix-it +is available. + +Supported in filetypes: 'c, cpp, objc, objcpp, cs' + ------------------------------------------------------------------------------- The *StartServer* subcommand @@ -1275,7 +1319,8 @@ Default: '1' The *g:ycm_echo_current_diagnostic* option When this option is set, YCM will echo the text of the diagnostic present on -the current line when you move your cursor to that line. +the current line when you move your cursor to that line. If a |FixIt| is +available for the current diagnostic, then '(FixIt)' is appended. This option is part of the Syntastic compatibility layer; if the option is not set, YCM will fall back to the value of the 'g:syntastic_echo_current_error' @@ -2230,21 +2275,12 @@ http://valloric.github.io/YouCompleteMe/. The author's homepage is http://val.markovic.io. -=============================================================================== - *youcompleteme-project-management* -Project Management ~ - -This open-source project is run by me, Strahinja Val Markovic. I also happen to -work for Google and the code I write here is under Google copyright (for the -sake of simplicity and other reasons). This does **NOT** mean that this is an -official Google product (it isn't) or that Google has (or wants to have) -anything to do with it. - =============================================================================== *youcompleteme-license* License ~ -This software is licensed under the GPL v3 license [38]. © 2013 Google Inc. +This software is licensed under the GPL v3 license [38]. © 2015 YouCompleteMe +contributors Image: Bitdeli Badge [39] @@ -2262,7 +2298,7 @@ References ~ [8] http://en.wikipedia.org/wiki/Subsequence [9] https://github.com/scrooloose/syntastic [10] https://github.com/SirVer/ultisnips/blob/master/doc/UltiSnips.txt -[11] http://code.google.com/p/macvim/#Download +[11] https://github.com/macvim-dev/macvim/releases [12] https://github.com/gmarik/vundle#about [13] http://mxcl.github.com/homebrew/ [14] http://www.cmake.org/cmake/resources/software.html @@ -2270,7 +2306,7 @@ References ~ [16] https://github.com/Valloric/YouCompleteMe/wiki/Windows-Installation-Guide [17] https://github.com/tpope/vim-pathogen#pathogenvim [18] http://vimhelp.appspot.com/starting.txt.html#vimrc -[19] http://llvm.org/releases/download.html#3.3 +[19] http://llvm.org/releases/download.html [20] https://github.com/Valloric/YouCompleteMe#options [21] https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py [22] http://clang.llvm.org/docs/JSONCompilationDatabase.html