Add docs for RefactorRename

Additionally, we restructure subcommands section to organise by
command type.

There are now a significant number of subcommands offering quite
powerful features. A flat-list of such commands is not easy for users to
discover (citation needed). Restructured into:
 - GoTo commands
 - Documenation/type information commands
 - FixIt/refactor commands

This has the following benefits:
 - features are more discoverable to the user (due to contents page
   update)
 - more obvious where to add new subcommand documentation
 - a place to write notes which apply to multiple commands (such as
   jump lists, multi-file refactor)
This commit is contained in:
Ben Jackson 2016-01-24 16:37:57 +00:00
parent 24f1f9c900
commit e8de632b90
2 changed files with 313 additions and 127 deletions

201
README.md
View File

@ -28,6 +28,9 @@ YouCompleteMe: a code-completion engine for Vim
- [Diagnostic highlighting groups](#diagnostic-highlighting-groups)
- [Commands](#commands)
- [YcmCompleter subcommands](#ycmcompleter-subcommands)
- [Go to declaration/definition/etc. commands](#goto-commands)
- [Semantic type information and documentation](#semantic-information-commands)
- [Refactoring and FixIt commands](#refactoring-and-fixit-commands)
- [Options](#options)
- [FAQ](#faq)
- [Contributor Code of Conduct](#contributor-code-of-conduct)
@ -104,9 +107,21 @@ features plus extra:
- Supertab
- neocomplcache
YCM also provides semantic go-to-definition/declaration commands for C-family
languages & Python. Expect more IDE features powered by the various YCM semantic
engines in the future.
### And that's not all...
YCM also provides [semantic IDE-like features](#quick-feature-summary) in a
number of languages, including:
- finding declarations, definitions, usages, etc. of identifiers,
- displaying type information for classes, variables, functions etc.,
- displaying documentation for methods, members, etc. in the preview window,
- fixing common coding errors, like missing semi-colons, typos, etc.,
- semantic renaming of variables across files (JavaScript only).
Features vary by file type, so make sure to check out the [file type feature
summary](#quick-feature-summary) and the
[full list of completer subcommands](#ycmcompleter-subcommands) to
find out what's available for your favourite languages.
You'll also find that YCM has filepath completers (try typing `./` in a file)
and a completer that integrates with [UltiSnips][].
@ -682,6 +697,7 @@ Quick Feature Summary
### JavaScript
* Intelligent auto-completion
* Renaming variables (`RefactorRename <new name>`)
* Go to definition, find references (`GoToDefinition`, `GoToReferences`)
* Type information for identifiers (`GetType`)
* View documentation comments for identifiers (`GetDoc`)
@ -1106,20 +1122,25 @@ purpose.
### The `:YcmCompleter` command
This command can be used to invoke completer-specific commands. If the first
This command gives access to a number of additional [IDE-like
features](#quick-feature-summary) in YCM, for things like semantic GoTo, type
information, FixIt and refactoring.
Technically the command invokes completer-specific commands. If the first
argument is of the form `ft=...` the completer for that file type will be used
(for example `ft=cpp`), else the native completer of the current buffer will be
used.
Call `YcmCompleter` without further arguments for information about the
commands you can call for the selected completer.
Call `YcmCompleter` without further arguments for a list of the
commands you can call for the current completer.
See the _YcmCompleter subcommands_ section for more information on the available
subcommands.
See the [file type feature summary](#quick-feature-summary) for an overview of
the features available for each file type. See the _YcmCompleter subcommands_
section for more information on the available subcommands and their usage.
YcmCompleter subcommands
------------------------
[See the docs for the `YcmCompleter` command before tackling this section.]
NOTE: See the docs for the `YcmCompleter` command before tackling this section.
The invoked subcommand is automatically routed to the currently active semantic
completer, so `:YcmCompleter GoToDefinition` will invoke the `GoToDefinition`
@ -1131,23 +1152,26 @@ You may also want to map the subcommands to something less verbose; for
instance, `nnoremap <leader>jd :YcmCompleter GoTo<CR>`
maps the `<leader>jd` sequence to the longer subcommand invocation.
The various `GoTo*` subcommands add entries to Vim's `jumplist` so you can use
### GoTo commands
These commands are useful for jumping around and exploring code. When moving
the cursor, the subcommands add entries to Vim's `jumplist` so you can use
`CTRL-O` to jump back to where you where before invoking the command (and
`CTRL-I` to jump forward; see `:h jumplist` for details).
### The `GoToInclude` subcommand
#### The `GoToInclude` subcommand
Looks up the current line for a header and jumps to it.
Supported in filetypes: `c, cpp, objc, objcpp`
### The `GoToDeclaration` subcommand
#### The `GoToDeclaration` subcommand
Looks up the symbol under the cursor and jumps to its declaration.
Supported in filetypes: `c, cpp, objc, objcpp, cs, go, python, rust`
### The `GoToDefinition` subcommand
#### The `GoToDefinition` subcommand
Looks up the symbol under the cursor and jumps to its definition.
@ -1159,7 +1183,7 @@ with `#include` directives (directly or indirectly) in that file.
Supported in filetypes: `c, cpp, objc, objcpp, cs, go, javascript, python,
rust, typescript`
### The `GoTo` subcommand
#### The `GoTo` subcommand
This command tries to perform the "most sensible" GoTo operation it can.
Currently, this means that it tries to look up the symbol under the cursor and
@ -1170,7 +1194,7 @@ jump to it. For C#, implementations are also considered and preferred.
Supported in filetypes: `c, cpp, objc, objcpp, cs, go, javascript, python, rust`
### The `GoToImprecise` subcommand
#### The `GoToImprecise` subcommand
WARNING: This command trades correctness for speed!
@ -1183,7 +1207,7 @@ latency.
Supported in filetypes: `c, cpp, objc, objcpp`
### The `GoToReferences` subcommand
#### The `GoToReferences` subcommand
This command attempts to find all of the references within the project to the
identifier under the cursor and populates the quickfix list with those
@ -1191,19 +1215,28 @@ locations.
Supported in filetypes: `javascript, python, typescript`
### The `ClearCompilationFlagCache` subcommand
#### The `GoToImplementation` subcommand
YCM caches the flags it gets from the `FlagsForFile` function in your
`ycm_extra_conf.py` file if you return them with the `do_cache` parameter set to
`True`. The cache is in memory and is never invalidated (unless you restart Vim
of course).
Looks up the symbol under the cursor and jumps to its implementation (i.e.
non-interface). If there are multiple implementations, instead provides a list
of implementations to choose from.
This command clears that cache entirely. YCM will then re-query your
`FlagsForFile` function as needed in the future.
Supported in filetypes: `cs`
Supported in filetypes: `c, cpp, objc, objcpp`
#### The `GoToImplementationElseDeclaration` subcommand
### The `GetType` subcommand
Looks up the symbol under the cursor and jumps to its implementation if one,
else jump to its declaration. If there are multiple implementations, instead
provides a list of implementations to choose from.
Supported in filetypes: `cs`
### 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.
#### The `GetType` subcommand
Echos the type of the variable or method under the cursor, and where it differs,
the derived type.
@ -1234,7 +1267,7 @@ NOTE: Causes re-parsing of the current translation unit.
Supported in filetypes: `c, cpp, objc, objcpp, javascript, typescript`
### The `GetParent` subcommand
#### The `GetParent` subcommand
Echos the semantic parent of the point under the cursor.
@ -1265,7 +1298,26 @@ NOTE: Causes re-parsing of the current translation unit.
Supported in filetypes: `c, cpp, objc, objcpp`
### The `FixIt` subcommand
#### The `GetDoc` subcommand
Displays the preview window populated with quick info about the identifier
under the cursor. Depending on the file type, this includes things like:
* The type or declaration of identifier,
* Doxygen/javadoc comments,
* Python docstrings,
* etc.
Supported in filetypes: `c, cpp, objc, objcpp, cs, python, typescript,
javascript`
### Refactoring and FixIt commands
These commands make changes to your source code in order to perform refactoring
or code correction. YouCompleteMe does not perform any action which cannot be
undone, and never saves or writes files to the disk.
#### The `FixIt` subcommand
Where available, attempts to make changes to the buffer to correct the
diagnostic closest to the cursor position.
@ -1290,8 +1342,8 @@ 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.
This is due to a technical restriction in Vim. Moving the cursor, or issuing
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
@ -1299,34 +1351,81 @@ where after fixing one diagnostic, another fix-it is available.
Supported in filetypes: `c, cpp, objc, objcpp, cs`
### The `GetDoc` subcommand
#### The `RefactorRename <new name>` subcommand
Displays the preview window populated with quick info about the identifier
under the cursor. This includes, depending on the language, things like:
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
action. The specific behavior is defined by the semantic engine in use.
* The type or declaration of identifier
* Doxygen/javadoc comments
* Python docstrings
* etc.
Similar to `FixIt`, this command applies automatic modifications to your source
files. Rename operations may involve changes to multiple files, which may or may
not be open in Vim buffers at the time. YouCompleteMe handles all of this for
you. The behavior is described in [the following section](#multi-file-refactor).
Supported in filetypes: `c, cpp, objc, objcpp, cs, python, typescript,
javascript`
Supported in filetypes: `javascript` (variables only)
### The `StartServer` subcommand
#### Multi-file Refactor
When a Refactor or FixIt command touches multiple files, YouCompleteMe attempts
to apply those modifications to any existing open, visible buffer in the current
tab. If no such buffer can be found, YouCompleteMe opens the file in a new
small horizontal split at the top of the current window, applies the change,
and then *hides* the window. NOTE: The buffer remains open, and must be
manually saved. A confirmation dialog is opened prior to doing this to remind
you that this is about to happen.
Once the modifications have been made, the quickfix list (see `:help quickfix`)
is opened and populated with the locations of all modifications. This can be
used to review all automatic changes made. Typically, use the `CTRL-W
<enter>` combination to open the selected file in a new split.
The buffers are *not* saved automatically. That is, you must save the modified
buffers manually after reviewing the changes from the quickfix list. Changes
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 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 *not*
populated in this case. Inspect `:buffers` or equivalent (see `:help buffers`)
to see the buffers that were opened by the command.
### Miscellaneous commands
These commands are for general administration, rather than IDE-like features.
They cover things like the semantic engine server instance and compilation
flags.
#### The `ClearCompilationFlagCache` subcommand
YCM caches the flags it gets from the `FlagsForFile` function in your
`ycm_extra_conf.py` file if you return them with the `do_cache` parameter set to
`True`. The cache is in memory and is never invalidated (unless you restart Vim
of course).
This command clears that cache entirely. YCM will then re-query your
`FlagsForFile` function as needed in the future.
Supported in filetypes: `c, cpp, objc, objcpp`
#### The `StartServer` subcommand
Starts the semantic-engine-as-localhost-server for those semantic engines that
work as separate servers that YCM talks to.
Supported in filetypes: `cs, go, javascript, rust`
### The `StopServer` subcommand
#### The `StopServer` subcommand
Stops the semantic-engine-as-localhost-server for those semantic engines that
work as separate servers that YCM talks to.
Supported in filetypes: `cs, go, javascript, rust`
### The `RestartServer` subcommand
#### The `RestartServer` subcommand
Restarts the semantic-engine-as-localhost-server for those semantic engines that
work as separate servers that YCM talks to.
@ -1340,7 +1439,7 @@ python binary to use to restart the Python semantic engine.
Supported in filetypes: `cs, python, rust`
### The `ReloadSolution` subcommand
#### The `ReloadSolution` subcommand
Instruct the Omnisharp server to clear its cache and reload all files from disk.
This is useful when files are added, removed, or renamed in the solution, files
@ -1348,22 +1447,6 @@ are changed outside of Vim, or whenever Omnisharp cache is out-of-sync.
Supported in filetypes: `cs`
### The `GoToImplementation` subcommand
Looks up the symbol under the cursor and jumps to its implementation (i.e.
non-interface). If there are multiple implementations, instead provides a list
of implementations to choose from.
Supported in filetypes: `cs`
### The `GoToImplementationElseDeclaration` subcommand
Looks up the symbol under the cursor and jumps to its implementation if one,
else jump to its declaration. If there are multiple implementations, instead
provides a list of implementations to choose from.
Supported in filetypes: `cs`
Functions
--------
@ -1896,7 +1979,7 @@ let g:ycm_csharp_server_port = 0
By default, when YCM inserts a namespace, it will insert the `using` statement
under the nearest `using` statement. You may prefer that the `using` statement is
inserted somewhere, for example, to preserve sorting. If so, you can set this
option to override this behaviour.
option to override this behavior.
When this option is set, instead of inserting the `using` statement itself, YCM
will set the global variable `g:ycm_namespace_to_insert` to the namespace to

View File

@ -5,6 +5,7 @@ Contents ~
1. Introduction |youcompleteme-introduction|
2. Intro |youcompleteme-intro|
1. And that's not all... |youcompleteme-thats-not-all...|
3. Installation |youcompleteme-installation|
1. Mac OS X Installation |youcompleteme-mac-os-x-installation|
2. Ubuntu Linux x64 Installation |youcompleteme-ubuntu-linux-x64-installation|
@ -48,23 +49,29 @@ Contents ~
6. The |:YcmToggleLogs| command
7. The |:YcmCompleter| command
7. YcmCompleter subcommands |youcompleteme-ycmcompleter-subcommands|
1. GoTo commands |youcompleteme-goto-commands|
1. The |GoToInclude| subcommand
2. The |GoToDeclaration| subcommand
3. The |GoToDefinition| subcommand
4. The |GoTo| subcommand
5. The |GoToImprecise| subcommand
6. The |GoToReferences| subcommand
7. The |ClearCompilationFlagCache| subcommand
8. The |GetType| subcommand
9. The |GetParent| subcommand
10. The |FixIt| subcommand
11. The |GetDoc| subcommand
12. The |StartServer| subcommand
13. The |StopServer| subcommand
14. The |RestartServer| subcommand
15. The |ReloadSolution| subcommand
16. The |GoToImplementation| subcommand
17. The |GoToImplementationElseDeclaration| subcommand
7. The |GoToImplementation| subcommand
8. The |GoToImplementationElseDeclaration| subcommand
2. Semantic information commands |youcompleteme-semantic-information-commands|
1. The |GetType| subcommand
2. The |GetParent| subcommand
3. The |GetDoc| subcommand
3. Refactoring and FixIt commands |youcompleteme-refactoring-fixit-commands|
1. The |FixIt| subcommand
2. The 'RefactorRename <new name>' subcommand |RefactorRename-new-name|
3. Multi-file Refactor |youcompleteme-multi-file-refactor|
4. Miscellaneous commands |youcompleteme-miscellaneous-commands|
1. The |ClearCompilationFlagCache| subcommand
2. The |StartServer| subcommand
3. The |StopServer| subcommand
4. The |RestartServer| subcommand
5. The |ReloadSolution| subcommand
8. Functions |youcompleteme-functions|
1. The |youcompleteme#GetErrorCount| function
2. The |youcompleteme#GetWarningCount| function
@ -193,6 +200,10 @@ Image: Build Status [1] Image: Build status [3]
- YcmCompleter subcommands
- Go to declaration/definition/etc. commands
- Semantic type information and documentation
- Refactoring and FixIt commands
- Options
- FAQ
- Contributor Code of Conduct
@ -280,9 +291,22 @@ features plus extra:
- Supertab
- neocomplcache
YCM also provides semantic go-to-definition/declaration commands for C-family
languages & Python. Expect more IDE features powered by the various YCM
semantic engines in the future.
-------------------------------------------------------------------------------
*youcompleteme-thats-not-all...*
And that's not all... ~
YCM also provides semantic IDE-like features in a number of languages,
including:
- finding declarations, definitions, usages, etc. of identifiers,
- displaying type information for classes, variables, functions etc.,
- displaying documentation for methods, members, etc. in the preview window,
- fixing common coding errors, like missing semi-colons, typos, etc.,
- semantic renaming of variables across files (JavaScript only).
Features vary by file type, so make sure to check out the file type feature
summary and the full list of completer subcommands to find out what's available
for your favourite languages.
You'll also find that YCM has filepath completers (try typing './' in a file)
and a completer that integrates with UltiSnips [17].
@ -911,6 +935,7 @@ TypeScript ~
JavaScript ~
- Intelligent auto-completion
- Renaming variables ('RefactorRename <new name>')
- Go to definition, find references (|GoToDefinition|, |GoToReferences|)
- Type information for identifiers (|GetType|)
- View documentation comments for identifiers (|GetDoc|)
@ -1372,20 +1397,24 @@ purpose.
-------------------------------------------------------------------------------
The *:YcmCompleter* command
This command can be used to invoke completer-specific commands. If the first
This command gives access to a number of additional IDE-like features in YCM,
for things like semantic GoTo, type information, FixIt and refactoring.
Technically the command invokes completer-specific commands. If the first
argument is of the form 'ft=...' the completer for that file type will be used
(for example 'ft=cpp'), else the native completer of the current buffer will be
used. Call 'YcmCompleter' without further arguments for information about the
commands you can call for the selected completer.
used. Call 'YcmCompleter' without further arguments for a list of the commands
you can call for the current completer.
See the _YcmCompleter subcommands_ section for more information on the
available subcommands.
See the file type feature summary for an overview of the features available for
each file type. See the _YcmCompleter subcommands_ section for more information
on the available subcommands and their usage.
===============================================================================
*youcompleteme-ycmcompleter-subcommands*
YcmCompleter subcommands ~
[See the docs for the 'YcmCompleter' command before tackling this section.]
NOTE: See the docs for the 'YcmCompleter' command before tackling this section.
The invoked subcommand is automatically routed to the currently active semantic
completer, so ':YcmCompleter GoToDefinition' will invoke the |GoToDefinition|
@ -1397,7 +1426,12 @@ You may also want to map the subcommands to something less verbose; for
instance, 'nnoremap <leader>jd :YcmCompleter GoTo<CR>' maps the '<leader>jd'
sequence to the longer subcommand invocation.
The various 'GoTo*' subcommands add entries to Vim's 'jumplist' so you can use
-------------------------------------------------------------------------------
*youcompleteme-goto-commands*
GoTo commands ~
These commands are useful for jumping around and exploring code. When moving
the cursor, the subcommands add entries to Vim's 'jumplist' so you can use
'CTRL-O' to jump back to where you where before invoking the command (and
'CTRL-I' to jump forward; see ':h jumplist' for details).
@ -1465,17 +1499,29 @@ locations.
Supported in filetypes: 'javascript, python, typescript'
-------------------------------------------------------------------------------
The *ClearCompilationFlagCache* subcommand
The *GoToImplementation* subcommand
YCM caches the flags it gets from the 'FlagsForFile' function in your
'ycm_extra_conf.py' file if you return them with the 'do_cache' parameter set
to 'True'. The cache is in memory and is never invalidated (unless you restart
Vim of course).
Looks up the symbol under the cursor and jumps to its implementation (i.e. non-
interface). If there are multiple implementations, instead provides a list of
implementations to choose from.
This command clears that cache entirely. YCM will then re-query your
'FlagsForFile' function as needed in the future.
Supported in filetypes: 'cs'
Supported in filetypes: 'c, cpp, objc, objcpp'
-------------------------------------------------------------------------------
The *GoToImplementationElseDeclaration* subcommand
Looks up the symbol under the cursor and jumps to its implementation if one,
else jump to its declaration. If there are multiple implementations, instead
provides a list of implementations to choose from.
Supported in filetypes: 'cs'
-------------------------------------------------------------------------------
*youcompleteme-semantic-information-commands*
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.
-------------------------------------------------------------------------------
The *GetType* subcommand
@ -1535,6 +1581,28 @@ NOTE: Causes re-parsing of the current translation unit.
Supported in filetypes: 'c, cpp, objc, objcpp'
-------------------------------------------------------------------------------
The *GetDoc* subcommand
Displays the preview window populated with quick info about the identifier
under the cursor. Depending on the file type, this includes things like:
- The type or declaration of identifier,
- Doxygen/javadoc comments,
- Python docstrings,
- etc.
Supported in filetypes: 'c, cpp, objc, objcpp, cs, python, typescript,
javascript'
-------------------------------------------------------------------------------
*youcompleteme-refactoring-fixit-commands*
Refactoring and FixIt commands ~
These commands make changes to your source code in order to perform refactoring
or code correction. YouCompleteMe does not perform any action which cannot be
undone, and never saves or writes files to the disk.
-------------------------------------------------------------------------------
The *FixIt* subcommand
@ -1561,29 +1629,82 @@ 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
This is due to a technical restriction in Vim. Moving the cursor, or issuing
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 *GetDoc* subcommand
*RefactorRename-new-name*
The 'RefactorRename <new name>' subcommand ~
Displays the preview window populated with quick info about the identifier
under the cursor. This includes, depending on the language, things like:
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
action. The specific behavior is defined by the semantic engine in use.
- The type or declaration of identifier
- Doxygen/javadoc comments
- Python docstrings
- etc.
Similar to |FixIt|, this command applies automatic modifications to your source
files. Rename operations may involve changes to multiple files, which may or
may not be open in Vim buffers at the time. YouCompleteMe handles all of this
for you. The behavior is described in the following section.
Supported in filetypes: 'c, cpp, objc, objcpp, cs, python, typescript,
javascript'
Supported in filetypes: 'javascript' (variables only)
-------------------------------------------------------------------------------
*youcompleteme-multi-file-refactor*
Multi-file Refactor ~
When a Refactor or FixIt command touches multiple files, YouCompleteMe attempts
to apply those modifications to any existing open, visible buffer in the
current tab. If no such buffer can be found, YouCompleteMe opens the file in a
new small horizontal split at the top of the current window, applies the
change, and then _hides_ the window. NOTE: The buffer remains open, and must be
manually saved. A confirmation dialog is opened prior to doing this to remind
you that this is about to happen.
Once the modifications have been made, the quickfix list (see ':help quickfix')
is opened and populated with the locations of all modifications. This can be
used to review all automatic changes made. Typically, use the 'CTRL-W <enter>'
combination to open the selected file in a new split.
The buffers are _not_ saved automatically. That is, you must save the modified
buffers manually after reviewing the changes from the quickfix list. Changes
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 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 _not_
populated in this case. Inspect ':buffers' or equivalent (see ':help buffers')
to see the buffers that were opened by the command.
-------------------------------------------------------------------------------
*youcompleteme-miscellaneous-commands*
Miscellaneous commands ~
These commands are for general administration, rather than IDE-like features.
They cover things like the semantic engine server instance and compilation
flags.
-------------------------------------------------------------------------------
The *ClearCompilationFlagCache* subcommand
YCM caches the flags it gets from the 'FlagsForFile' function in your
'ycm_extra_conf.py' file if you return them with the 'do_cache' parameter set
to 'True'. The cache is in memory and is never invalidated (unless you restart
Vim of course).
This command clears that cache entirely. YCM will then re-query your
'FlagsForFile' function as needed in the future.
Supported in filetypes: 'c, cpp, objc, objcpp'
-------------------------------------------------------------------------------
The *StartServer* subcommand
@ -1623,24 +1744,6 @@ files are changed outside of Vim, or whenever Omnisharp cache is out-of-sync.
Supported in filetypes: 'cs'
-------------------------------------------------------------------------------
The *GoToImplementation* subcommand
Looks up the symbol under the cursor and jumps to its implementation (i.e. non-
interface). If there are multiple implementations, instead provides a list of
implementations to choose from.
Supported in filetypes: 'cs'
-------------------------------------------------------------------------------
The *GoToImplementationElseDeclaration* subcommand
Looks up the symbol under the cursor and jumps to its implementation if one,
else jump to its declaration. If there are multiple implementations, instead
provides a list of implementations to choose from.
Supported in filetypes: 'cs'
===============================================================================
*youcompleteme-functions*
Functions ~
@ -2137,7 +2240,7 @@ The *g:ycm_csharp_insert_namespace_expr* option
By default, when YCM inserts a namespace, it will insert the 'using' statement
under the nearest 'using' statement. You may prefer that the 'using' statement
is inserted somewhere, for example, to preserve sorting. If so, you can set
this option to override this behaviour.
this option to override this behavior.
When this option is set, instead of inserting the 'using' statement itself, YCM
will set the global variable 'g:ycm_namespace_to_insert' to the namespace to