Auto merge of #3089 - micbou:tsserver-javascript, r=Valloric
[READY] Update JavaScript support and documentation This updates the documentation with the proposed changes in https://github.com/Valloric/ycmd/pull/1036#issuecomment-397234687. The Tern instructions are moved to [this wiki page](https://github.com/Valloric/YouCompleteMe/wiki/JavaScript-Semantic-Completion-through-Tern). JavaScript is added to the list of supported filetypes for diagnostics and completion fixits. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/valloric/youcompleteme/3089) <!-- Reviewable:end -->
This commit is contained in:
commit
15362d9cb8
224
README.md
224
README.md
@ -47,10 +47,9 @@ Contents
|
|||||||
- [General Semantic Completion](#general-semantic-completion)
|
- [General Semantic Completion](#general-semantic-completion)
|
||||||
- [C-family Semantic Completion](#c-family-semantic-completion)
|
- [C-family Semantic Completion](#c-family-semantic-completion)
|
||||||
- [Java Semantic Completion](#java-semantic-completion)
|
- [Java Semantic Completion](#java-semantic-completion)
|
||||||
- [JavaScript Semantic Completion](#javascript-semantic-completion)
|
|
||||||
- [Python Semantic Completion](#python-semantic-completion)
|
- [Python Semantic Completion](#python-semantic-completion)
|
||||||
- [Rust Semantic Completion](#rust-semantic-completion)
|
- [Rust Semantic Completion](#rust-semantic-completion)
|
||||||
- [TypeScript Semantic Completion](#typescript-semantic-completion)
|
- [JavaScript and TypeScript Semantic Completion](#javascript-and-typescript-semantic-completion)
|
||||||
- [Semantic Completion for Other Languages](#semantic-completion-for-other-languages)
|
- [Semantic Completion for Other Languages](#semantic-completion-for-other-languages)
|
||||||
- [Writing New Semantic Completers](#writing-new-semantic-completers)
|
- [Writing New Semantic Completers](#writing-new-semantic-completers)
|
||||||
- [Diagnostic Display](#diagnostic-display)
|
- [Diagnostic Display](#diagnostic-display)
|
||||||
@ -83,8 +82,7 @@ YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for
|
|||||||
- a [Jedi][]-based completion engine for Python 2 and 3 (using the [JediHTTP][] wrapper),
|
- a [Jedi][]-based completion engine for Python 2 and 3 (using the [JediHTTP][] wrapper),
|
||||||
- an [OmniSharp][]-based completion engine for C#,
|
- an [OmniSharp][]-based completion engine for C#,
|
||||||
- a combination of [Gocode][] and [Godef][] semantic engines for Go,
|
- a combination of [Gocode][] and [Godef][] semantic engines for Go,
|
||||||
- a [TSServer][]-based completion engine for TypeScript,
|
- a [TSServer][]-based completion engine for JavaScript and TypeScript,
|
||||||
- a [Tern][]-based completion engine for JavaScript,
|
|
||||||
- a [racer][]-based completion engine for Rust,
|
- a [racer][]-based completion engine for Rust,
|
||||||
- a [jdt.ls][]-based experimental completion engine for Java.
|
- a [jdt.ls][]-based experimental completion engine for Java.
|
||||||
- and an omnifunc-based completer that uses data from Vim's omnicomplete system
|
- and an omnifunc-based completer that uses data from Vim's omnicomplete system
|
||||||
@ -216,10 +214,8 @@ The following additional language support options are available:
|
|||||||
`./install.py`.
|
`./install.py`.
|
||||||
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
||||||
`./install.py`.
|
`./install.py`.
|
||||||
- TypeScript support: install [Node.js and npm][npm-install] then install the
|
- JavaScript and TypeScript support: install [Node.js and npm][npm-install] then
|
||||||
TypeScript SDK with `npm install -g typescript`.
|
install the TypeScript SDK with `npm install -g typescript`.
|
||||||
- JavaScript support: install [Node.js and npm][npm-install] and add
|
|
||||||
`--js-completer` when calling `./install.py`.
|
|
||||||
- Rust support: install [Rust][rust-install] and add
|
- Rust support: install [Rust][rust-install] and add
|
||||||
`--rust-completer` when calling `./install.py`.
|
`--rust-completer` when calling `./install.py`.
|
||||||
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
||||||
@ -290,10 +286,8 @@ The following additional language support options are available:
|
|||||||
when calling `./install.py`.
|
when calling `./install.py`.
|
||||||
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
||||||
`./install.py`.
|
`./install.py`.
|
||||||
- TypeScript support: install [Node.js and npm][npm-install] then install the
|
- JavaScript and TypeScript support: install [Node.js and npm][npm-install] then
|
||||||
TypeScript SDK with `npm install -g typescript`.
|
install the TypeScript SDK with `npm install -g typescript`.
|
||||||
- JavaScript support: install [Node.js and npm][npm-install] and add
|
|
||||||
`--js-completer` when calling `./install.py`.
|
|
||||||
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
||||||
calling `./install.py`.
|
calling `./install.py`.
|
||||||
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
||||||
@ -359,10 +353,8 @@ The following additional language support options are available:
|
|||||||
when calling `./install.py`.
|
when calling `./install.py`.
|
||||||
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
||||||
`./install.py`.
|
`./install.py`.
|
||||||
- TypeScript support: install [Node.js and npm][npm-install] then install the
|
- JavaScript and TypeScript support: install [Node.js and npm][npm-install] then
|
||||||
TypeScript SDK with `npm install -g typescript`.
|
install the TypeScript SDK with `npm install -g typescript`.
|
||||||
- JavaScript support: install [Node.js and npm][npm-install] and add
|
|
||||||
`--js-completer` when calling `./install.py`.
|
|
||||||
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
||||||
calling `./install.py`.
|
calling `./install.py`.
|
||||||
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
||||||
@ -452,10 +444,8 @@ The following additional language support options are available:
|
|||||||
Be sure that [the build utility `msbuild` is in your PATH][add-msbuild-to-path].
|
Be sure that [the build utility `msbuild` is in your PATH][add-msbuild-to-path].
|
||||||
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
||||||
`install.py`.
|
`install.py`.
|
||||||
- TypeScript support: install [Node.js and npm][npm-install] then install the
|
- JavaScript and TypeScript support: install [Node.js and npm][npm-install] then
|
||||||
TypeScript SDK with `npm install -g typescript`.
|
install the TypeScript SDK with `npm install -g typescript`.
|
||||||
- JavaScript support: install [Node.js and npm][npm-install] and add
|
|
||||||
`--js-completer` when calling `install.py`.
|
|
||||||
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
||||||
calling `install.py`.
|
calling `install.py`.
|
||||||
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
||||||
@ -526,10 +516,8 @@ The following additional language support options are available:
|
|||||||
`./install.py`.
|
`./install.py`.
|
||||||
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
- Go support: install [Go][go-install] and add `--go-completer` when calling
|
||||||
`./install.py`.
|
`./install.py`.
|
||||||
- TypeScript support: install [Node.js and npm][npm-install] then install the
|
- JavaScript and TypeScript support: install [Node.js and npm][npm-install] then
|
||||||
TypeScript SDK with `npm install -g typescript`.
|
install the TypeScript SDK with `npm install -g typescript`.
|
||||||
- JavaScript support: install [Node.js and npm][npm-install] and add
|
|
||||||
`--js-completer` when calling `./install.py`.
|
|
||||||
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
- Rust support: install [Rust][rust-install] and add `--rust-completer` when
|
||||||
calling `./install.py`.
|
calling `./install.py`.
|
||||||
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
- Java support: install [JDK8 (version 8 required)][jdk-install] and add
|
||||||
@ -739,12 +727,9 @@ process.
|
|||||||
- Go support: install [Go][go-install] and add it to your path. Navigate to
|
- Go support: install [Go][go-install] and add it to your path. Navigate to
|
||||||
`YouCompleteMe/third_party/ycmd/third_party/gocode` and run `go build`.
|
`YouCompleteMe/third_party/ycmd/third_party/gocode` and run `go build`.
|
||||||
|
|
||||||
- TypeScript support: as with the quick installation, simply `npm install -g
|
- JavaScript and TypeScript support: as with the quick installation, simply
|
||||||
typescript` after successfully installing [Node.js and npm][npm-install].
|
`npm install -g typescript` after successfully installing [Node.js and
|
||||||
|
npm][npm-install].
|
||||||
- JavaScript support: install [Node.js and npm][npm-install]. Then navigate
|
|
||||||
to `YouCompleteMe/third_party/ycmd/third_party/tern_runtime` and run `npm
|
|
||||||
install --production`
|
|
||||||
|
|
||||||
- Rust support: install [Rust][rust-install]. Navigate to
|
- Rust support: install [Rust][rust-install]. Navigate to
|
||||||
`YouCompleteMe/third_party/ycmd/third_party/racerd` and run `cargo build
|
`YouCompleteMe/third_party/ycmd/third_party/racerd` and run `cargo build
|
||||||
@ -809,7 +794,7 @@ Quick Feature Summary
|
|||||||
* Go to definition (`GoTo`)
|
* Go to definition (`GoTo`)
|
||||||
* Management of `gocode` server instance
|
* Management of `gocode` server instance
|
||||||
|
|
||||||
### TypeScript
|
### JavaScript and TypeScript
|
||||||
|
|
||||||
* Semantic auto-completion with automatic import insertion
|
* Semantic auto-completion with automatic import insertion
|
||||||
* Go to definition (`GoTo`, `GoToDefinition`, and `GoToDeclaration` are
|
* Go to definition (`GoTo`, `GoToDefinition`, and `GoToDeclaration` are
|
||||||
@ -825,15 +810,6 @@ Quick Feature Summary
|
|||||||
* Organize imports (`OrganizeImports`)
|
* Organize imports (`OrganizeImports`)
|
||||||
* Management of `TSServer` server instance
|
* Management of `TSServer` server instance
|
||||||
|
|
||||||
### 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`)
|
|
||||||
* Management of `Tern` server instance
|
|
||||||
|
|
||||||
### Rust
|
### Rust
|
||||||
|
|
||||||
* Semantic auto-completion
|
* Semantic auto-completion
|
||||||
@ -1235,97 +1211,6 @@ For anything else, [contact us](#contact). Java support is experimental at
|
|||||||
present so we'd love to hear your feedback! Please do remember to check
|
present so we'd love to hear your feedback! Please do remember to check
|
||||||
[CONTRIBUTING.md][contributing-md] for the list of diagnostics we'll need.
|
[CONTRIBUTING.md][contributing-md] for the list of diagnostics we'll need.
|
||||||
|
|
||||||
### JavaScript Semantic Completion
|
|
||||||
|
|
||||||
#### JavaScript quick start
|
|
||||||
|
|
||||||
1. Ensure that you have enabled the JavaScript completer. See the
|
|
||||||
[installation guide](#installation) for details.
|
|
||||||
|
|
||||||
2. Create a `.tern-project` file in the root directory of your JavaScript
|
|
||||||
project, by following the [instructions][tern-project] in the [Tern][]
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
3. Edit a file from your project.
|
|
||||||
|
|
||||||
#### Explanation
|
|
||||||
|
|
||||||
JavaScript completion is based on [Tern][]. This completion engine requires a
|
|
||||||
file named [`.tern-project`][tern-project] to exist in the current working
|
|
||||||
directory or a directory which is an ancestor of the current working directory
|
|
||||||
when the Tern server is started. YCM starts the Tern server the first time a
|
|
||||||
JavaScript file is edited and uses its directory as the working directory, so
|
|
||||||
the directory of that file at that time needs to be a descendent of the
|
|
||||||
directory containing the `.tern-project` file (or that directory itself).
|
|
||||||
|
|
||||||
Alternatively, as described in the [Tern documentation][tern-docs], a global
|
|
||||||
`.tern-config` file may be used.
|
|
||||||
|
|
||||||
Multiple Tern servers are not supported. To switch to a different JavaScript
|
|
||||||
project, you need to restart the Tern server using [the `RestartServer`
|
|
||||||
subcommand](#the-restartserver-subcommand) while editing a file of that
|
|
||||||
project:
|
|
||||||
|
|
||||||
```vim
|
|
||||||
:YcmCompleter RestartServer
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Tips and tricks
|
|
||||||
|
|
||||||
This section contains some advice for configuring `.tern-project` and working
|
|
||||||
with JavaScript files. The canonical reference for correctly configuring Tern is
|
|
||||||
the [Tern documentation][tern-docs]. Any issues, improvements, advice, etc.
|
|
||||||
should be sought from the [Tern][] project. For example, see the [list of tern
|
|
||||||
plugins](http://ternjs.net/doc/manual.html#plugins) for the list of plugins
|
|
||||||
which can be enabled in the `plugins` section of the `.tern-project` file.
|
|
||||||
|
|
||||||
##### Configuring Tern for node support
|
|
||||||
|
|
||||||
The following simple example `.tern-project` file enables nodejs support:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"plugins": {
|
|
||||||
"node": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Configuring Tern for requirejs support
|
|
||||||
|
|
||||||
The Tern requirejs plugin requires that all included "libraries" are rooted
|
|
||||||
under the same base directory. If that's not the case for your projects, then it
|
|
||||||
is possible to make it work with appropriate symbolic links. For example, create
|
|
||||||
a directory `ext_lib` within your project and populate it with symlinks to your
|
|
||||||
libraries. Then set up the `.tern-project` something like this:
|
|
||||||
|
|
||||||
```json
|
|
||||||
|
|
||||||
{
|
|
||||||
"plugins": {
|
|
||||||
"requirejs": {
|
|
||||||
"baseURL": "./ext_lib",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, given the following structure:
|
|
||||||
|
|
||||||
```
|
|
||||||
./ext_lib/mylib (symlink)
|
|
||||||
./ext_lib/anotherlib (symlink)
|
|
||||||
```
|
|
||||||
|
|
||||||
Can be used as follows:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
define( [ 'mylib/file1', 'anotherlib/anotherfile' ], function( f1, f2 ) {
|
|
||||||
// etc.
|
|
||||||
} );
|
|
||||||
```
|
|
||||||
|
|
||||||
### Python Semantic Completion
|
### Python Semantic Completion
|
||||||
|
|
||||||
Completion and GoTo commands work out of the box with no additional
|
Completion and GoTo commands work out of the box with no additional
|
||||||
@ -1374,17 +1259,38 @@ extract it somewhere, and set the following option so YCM can locate it:
|
|||||||
let g:ycm_rust_src_path = '/usr/local/rust/rustc-1.20.0/src'
|
let g:ycm_rust_src_path = '/usr/local/rust/rustc-1.20.0/src'
|
||||||
```
|
```
|
||||||
|
|
||||||
### TypeScript Semantic Completion
|
### JavaScript and TypeScript Semantic Completion
|
||||||
|
|
||||||
All TypeScript features are provided by the [TSServer][] engine, which is
|
**NOTE:** YCM originally used the [Tern][] engine for JavaScript but due to
|
||||||
included in the TypeScript SDK. To get the SDK, install [Node.js and
|
[Tern][] not being maintained anymore by its main author and the [TSServer][]
|
||||||
|
engine offering more features, YCM is moving to [TSServer][]. This won't affect
|
||||||
|
you if you were already using [Tern][] 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][],
|
||||||
|
you should pass the `--js-completer` option to the `install.py` script during
|
||||||
|
installation. Further instructions on how to setup YCM with [Tern][] are
|
||||||
|
available on [the wiki][tern-instructions].
|
||||||
|
|
||||||
|
All JavaScript and TypeScript features are provided by the [TSServer][] engine,
|
||||||
|
which is included in the TypeScript SDK. To get the SDK, install [Node.js and
|
||||||
npm][npm-install] and run the command:
|
npm][npm-install] and run the command:
|
||||||
```
|
```
|
||||||
npm install -g typescript
|
npm install -g typescript
|
||||||
```
|
```
|
||||||
[TSServer][] relies on [the `tsconfig.json` file][tsconfig.json] to analyze your
|
[TSServer][] relies on [the `jsconfig.json` file][jsconfig.json] for JavaScript
|
||||||
|
and [the `tsconfig.json` file][tsconfig.json] for TypeScript to analyze your
|
||||||
project. Ensure the file exists at the root of your project.
|
project. Ensure the file exists at the root of your project.
|
||||||
|
|
||||||
|
To get diagnostics in JavaScript, set the `checkJs` option to `true` in your
|
||||||
|
`jsconfig.json` file:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"checkJs": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
TypeScript 2.8.1 or later is recommended. Some features will be missing on older
|
TypeScript 2.8.1 or later is recommended. Some features will be missing on older
|
||||||
versions. You can check which version you are currently using by looking at the
|
versions. You can check which version you are currently using by looking at the
|
||||||
output of [`:YcmDebugInfo` ](#the-ycmdebuginfo-command). If the version is
|
output of [`:YcmDebugInfo` ](#the-ycmdebuginfo-command). If the version is
|
||||||
@ -1392,11 +1298,11 @@ output of [`:YcmDebugInfo` ](#the-ycmdebuginfo-command). If the version is
|
|||||||
|
|
||||||
### Semantic Completion for Other Languages
|
### Semantic Completion for Other Languages
|
||||||
|
|
||||||
C-family, C#, Go, Java, JavaScript, Python, Rust, and TypeScript languages are
|
C-family, C#, Go, Java, Python, Rust, and JavaScript/TypeScript languages are
|
||||||
supported natively by YouCompleteMe using the [Clang][], [OmniSharp][],
|
supported natively by YouCompleteMe using the [Clang][], [OmniSharp][],
|
||||||
[Gocode][]/[Godef][], [jdt.ls][], [Tern][], [Jedi][], [racer][], and
|
[Gocode][]/[Godef][], [jdt.ls][], [Jedi][], [racer][], and [TSServer][] engines,
|
||||||
[TSServer][] engines, respectively. Check the [installation](#installation)
|
respectively. Check the [installation](#installation) section for instructions
|
||||||
section for instructions to enable these features if desired.
|
to enable these features if desired.
|
||||||
|
|
||||||
YCM will use your `omnifunc` (see `:h omnifunc` in Vim) as a source for semantic
|
YCM will use your `omnifunc` (see `:h omnifunc` in Vim) as a source for semantic
|
||||||
completions if it does not have a native semantic completion engine for your
|
completions if it does not have a native semantic completion engine for your
|
||||||
@ -1441,11 +1347,10 @@ Completer API.
|
|||||||
|
|
||||||
### Diagnostic Display
|
### Diagnostic Display
|
||||||
|
|
||||||
YCM will display diagnostic notifications for C-family and C# languages if you
|
YCM will display diagnostic notifications for the C-family, C#, Java,
|
||||||
compiled YCM with Clang and Omnisharp support, respectively. Diagnostics will
|
JavaScript, and TypeScript languages. Since YCM continuously recompiles your
|
||||||
also be displayed for TypeScript. Since YCM continuously recompiles your file as
|
file as you type, you'll get notified of errors and warnings in your file as
|
||||||
you type, you'll get notified of errors and warnings in your file as fast as
|
fast as possible.
|
||||||
possible.
|
|
||||||
|
|
||||||
Here are the various pieces of the diagnostic UI:
|
Here are the various pieces of the diagnostic UI:
|
||||||
|
|
||||||
@ -1636,8 +1541,8 @@ Supported in filetypes: `c, cpp, objc, objcpp, cuda`
|
|||||||
|
|
||||||
Looks up the symbol under the cursor and jumps to its declaration.
|
Looks up the symbol under the cursor and jumps to its declaration.
|
||||||
|
|
||||||
Supported in filetypes: `c, cpp, objc, objcpp, cuda, cs, go, java, python, rust,
|
Supported in filetypes: `c, cpp, objc, objcpp, cuda, cs, go, java, javascript,
|
||||||
typescript`
|
python, rust, typescript`
|
||||||
|
|
||||||
#### The `GoToDefinition` subcommand
|
#### The `GoToDefinition` subcommand
|
||||||
|
|
||||||
@ -1705,7 +1610,7 @@ Supported in filetypes: `cs`
|
|||||||
Looks up the symbol under the cursor and jumps to the definition of its type
|
Looks up the symbol under the cursor and jumps to the definition of its type
|
||||||
e.g. if the symbol is an object, go to the definition of its class.
|
e.g. if the symbol is an object, go to the definition of its class.
|
||||||
|
|
||||||
Supported in filetypes: `typescript`
|
Supported in filetypes: `javascript, typescript`
|
||||||
|
|
||||||
### Semantic Information Commands
|
### Semantic Information Commands
|
||||||
|
|
||||||
@ -1833,7 +1738,8 @@ indication).
|
|||||||
|
|
||||||
**NOTE:** Causes re-parsing of the current translation unit.
|
**NOTE:** Causes re-parsing of the current translation unit.
|
||||||
|
|
||||||
Supported in filetypes: `c, cpp, objc, objcpp, cuda, cs, java, typescript`
|
Supported in filetypes: `c, cpp, objc, objcpp, cuda, cs, java, javascript,
|
||||||
|
typescript`
|
||||||
|
|
||||||
#### The `RefactorRename <new name>` subcommand
|
#### The `RefactorRename <new name>` subcommand
|
||||||
|
|
||||||
@ -1847,7 +1753,7 @@ 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
|
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).
|
you. The behavior is described in [the following section](#multi-file-refactor).
|
||||||
|
|
||||||
Supported in filetypes: `java, javascript (variables only), typescript`
|
Supported in filetypes: `java, javascript, typescript`
|
||||||
|
|
||||||
#### Multi-file Refactor
|
#### Multi-file Refactor
|
||||||
|
|
||||||
@ -1888,7 +1794,7 @@ it in one of Vim's visual modes (see `:h visual-use`) and run the command or
|
|||||||
directly enter the range on the command line, e.g. `:2,5YcmCompleter Format` to
|
directly enter the range on the command line, e.g. `:2,5YcmCompleter Format` to
|
||||||
format it from line 2 to line 5.
|
format it from line 2 to line 5.
|
||||||
|
|
||||||
Supported in filetypes: `java, typescript`
|
Supported in filetypes: `java, javascript, typescript`
|
||||||
|
|
||||||
#### The `OrganizeImports` subcommand
|
#### The `OrganizeImports` subcommand
|
||||||
|
|
||||||
@ -1896,7 +1802,7 @@ 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 resolves imports
|
||||||
in Java.
|
in Java.
|
||||||
|
|
||||||
Supported in filetypes: `java, typescript`
|
Supported in filetypes: `java, javascript, typescript`
|
||||||
|
|
||||||
### Miscellaneous Commands
|
### Miscellaneous Commands
|
||||||
|
|
||||||
@ -1909,9 +1815,6 @@ flags.
|
|||||||
Restarts the semantic-engine-as-localhost-server for those semantic engines that
|
Restarts the semantic-engine-as-localhost-server for those semantic engines that
|
||||||
work as separate servers that YCM talks to.
|
work as separate servers that YCM talks to.
|
||||||
|
|
||||||
Use this subcommand while editing a file from a JavaScript project to switch to
|
|
||||||
that project.
|
|
||||||
|
|
||||||
An additional optional argument may be supplied for Python, specifying the
|
An additional optional argument may be supplied for Python, specifying the
|
||||||
python binary to use to restart the Python semantic engine.
|
python binary to use to restart the Python semantic engine.
|
||||||
|
|
||||||
@ -3351,15 +3254,6 @@ the list of flags you return from your `Settings` function in your
|
|||||||
|
|
||||||
See [issue #303][issue-303] for details.
|
See [issue #303][issue-303] for details.
|
||||||
|
|
||||||
### When I open a JavaScript file, I get an annoying warning about `.tern-project` file
|
|
||||||
|
|
||||||
Take a look at the [instructions for using the JavaScript
|
|
||||||
completer](#javascript-semantic-completion).
|
|
||||||
|
|
||||||
If this is still really annoying, and you have a good reason not to have a
|
|
||||||
`.tern-project` file, create an empty `.tern-config` file in your home directory
|
|
||||||
and YCM will stop complaining.
|
|
||||||
|
|
||||||
### When I start vim I get a runtime error saying `R6034 An application has made an attempt to load the C runtime library incorrectly.`
|
### When I start vim I get a runtime error saying `R6034 An application has made an attempt to load the C runtime library incorrectly.`
|
||||||
|
|
||||||
[CMake and other things seem to screw up the PATH with their own msvcrXX.dll
|
[CMake and other things seem to screw up the PATH with their own msvcrXX.dll
|
||||||
@ -3515,6 +3409,7 @@ This software is licensed under the [GPL v3 license][gpl].
|
|||||||
[Gocode]: https://github.com/nsf/gocode
|
[Gocode]: https://github.com/nsf/gocode
|
||||||
[Godef]: https://github.com/Manishearth/godef
|
[Godef]: https://github.com/Manishearth/godef
|
||||||
[TSServer]: https://github.com/Microsoft/TypeScript/tree/master/src/server
|
[TSServer]: https://github.com/Microsoft/TypeScript/tree/master/src/server
|
||||||
|
[jsconfig.json]: https://code.visualstudio.com/docs/languages/jsconfig
|
||||||
[tsconfig.json]: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
|
[tsconfig.json]: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
|
||||||
[vim-win-download]: https://bintray.com/micbou/generic/vim
|
[vim-win-download]: https://bintray.com/micbou/generic/vim
|
||||||
[python-win-download]: https://www.python.org/downloads/windows/
|
[python-win-download]: https://www.python.org/downloads/windows/
|
||||||
@ -3526,9 +3421,8 @@ This software is licensed under the [GPL v3 license][gpl].
|
|||||||
[mono-install]: http://www.mono-project.com/docs/getting-started/install/
|
[mono-install]: http://www.mono-project.com/docs/getting-started/install/
|
||||||
[go-install]: https://golang.org/doc/install
|
[go-install]: https://golang.org/doc/install
|
||||||
[npm-install]: https://docs.npmjs.com/getting-started/installing-node
|
[npm-install]: https://docs.npmjs.com/getting-started/installing-node
|
||||||
|
[tern-instructions]: https://github.com/Valloric/YouCompleteMe/wiki/JavaScript-Semantic-Completion-through-Tern
|
||||||
[Tern]: http://ternjs.net
|
[Tern]: http://ternjs.net
|
||||||
[tern-project]: http://ternjs.net/doc/manual.html#configuration
|
|
||||||
[tern-docs]: http://ternjs.net/doc/manual.html#server
|
|
||||||
[racer]: https://github.com/phildawes/racer
|
[racer]: https://github.com/phildawes/racer
|
||||||
[rust-install]: https://www.rust-lang.org/
|
[rust-install]: https://www.rust-lang.org/
|
||||||
[rust-src]: https://www.rust-lang.org/downloads.html
|
[rust-src]: https://www.rust-lang.org/downloads.html
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -28,7 +28,7 @@ from ycm.diagnostic_interface import DiagnosticInterface
|
|||||||
|
|
||||||
|
|
||||||
DIAGNOSTIC_UI_FILETYPES = { 'cpp', 'cs', 'c', 'objc', 'objcpp', 'cuda',
|
DIAGNOSTIC_UI_FILETYPES = { 'cpp', 'cs', 'c', 'objc', 'objcpp', 'cuda',
|
||||||
'typescript' }
|
'javascript', 'typescript' }
|
||||||
DIAGNOSTIC_UI_ASYNC_FILETYPES = { 'java' }
|
DIAGNOSTIC_UI_ASYNC_FILETYPES = { 'java' }
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ class CompletionRequest( BaseRequest ):
|
|||||||
self._complete_done_hooks = {
|
self._complete_done_hooks = {
|
||||||
'cs': self._OnCompleteDone_Csharp,
|
'cs': self._OnCompleteDone_Csharp,
|
||||||
'java': self._OnCompleteDone_FixIt,
|
'java': self._OnCompleteDone_FixIt,
|
||||||
|
'javascript': self._OnCompleteDone_FixIt,
|
||||||
'typescript': self._OnCompleteDone_FixIt,
|
'typescript': self._OnCompleteDone_FixIt,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ def EventNotification_FileReadyToParse_NonDiagnostic_Error_test(
|
|||||||
def ErrorResponse( *args ):
|
def ErrorResponse( *args ):
|
||||||
raise ServerError( ERROR_TEXT )
|
raise ServerError( ERROR_TEXT )
|
||||||
|
|
||||||
with MockArbitraryBuffer( 'javascript' ):
|
with MockArbitraryBuffer( 'some_filetype' ):
|
||||||
with MockEventNotification( ErrorResponse ):
|
with MockEventNotification( ErrorResponse ):
|
||||||
ycm.OnFileReadyToParse()
|
ycm.OnFileReadyToParse()
|
||||||
ok_( ycm.FileParseRequestReady() )
|
ok_( ycm.FileParseRequestReady() )
|
||||||
@ -145,7 +145,7 @@ def EventNotification_FileReadyToParse_NonDiagnostic_Error_NonNative_test(
|
|||||||
test_utils.VIM_MATCHES = []
|
test_utils.VIM_MATCHES = []
|
||||||
test_utils.VIM_SIGNS = []
|
test_utils.VIM_SIGNS = []
|
||||||
|
|
||||||
with MockArbitraryBuffer( 'javascript' ):
|
with MockArbitraryBuffer( 'some_filetype' ):
|
||||||
with MockEventNotification( None, False ):
|
with MockEventNotification( None, False ):
|
||||||
ycm.OnFileReadyToParse()
|
ycm.OnFileReadyToParse()
|
||||||
ycm.HandleFileParseRequest()
|
ycm.HandleFileParseRequest()
|
||||||
@ -176,7 +176,7 @@ def EventNotification_FileReadyToParse_NonDiagnostic_ConfirmExtraConf_test(
|
|||||||
|
|
||||||
with patch( 'ycm.client.base_request.BaseRequest.PostDataToHandler',
|
with patch( 'ycm.client.base_request.BaseRequest.PostDataToHandler',
|
||||||
new_callable = ExtendedMock ) as post_data_to_handler:
|
new_callable = ExtendedMock ) as post_data_to_handler:
|
||||||
with MockArbitraryBuffer( 'javascript' ):
|
with MockArbitraryBuffer( 'some_filetype' ):
|
||||||
with MockEventNotification( UnknownExtraConfResponse ):
|
with MockEventNotification( UnknownExtraConfResponse ):
|
||||||
|
|
||||||
# When the user accepts the extra conf, we load it
|
# When the user accepts the extra conf, we load it
|
||||||
|
Loading…
Reference in New Issue
Block a user