Update JavaScript support and documentation

This commit is contained in:
micbou 2017-09-26 20:17:46 +02:00
parent f379ec103f
commit 4e3ae95e9f
No known key found for this signature in database
GPG Key ID: C7E8FD1F3BDA1E05
5 changed files with 342 additions and 565 deletions

224
README.md
View File

@ -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.
@ -3334,15 +3237,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
@ -3498,6 +3392,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/
@ -3509,9 +3404,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

View File

@ -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' }

View File

@ -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,
} }

View File

@ -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