Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add texlab for LaTeX #288

Merged
merged 33 commits into from
Jul 28, 2020
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1b9c44f
start texlab spec
bollwyvl Jun 30, 2020
f79f8f1
add texlab config schema
bollwyvl Jun 30, 2020
2858cb9
linting
bollwyvl Jun 30, 2020
4bae338
don't send null InitParameters
bollwyvl Jun 30, 2020
6cf82a5
add texlab to docs
bollwyvl Jun 30, 2020
ee0be1d
Merge remote-tracking branch 'origin/fix-change-of-unopened-files' in…
bollwyvl Jun 30, 2020
f543d48
linting
bollwyvl Jun 30, 2020
359893e
only do texlab tests if texlab available
bollwyvl Jun 30, 2020
ba9ea90
merge fix-change-of-unopened-files again
bollwyvl Jun 30, 2020
5430fe4
log changes
bollwyvl Jun 30, 2020
fd0ac0e
log more changes
bollwyvl Jun 30, 2020
efb46ed
Merge branch 'fix-change-of-unopened-files' into add-texlab-spec
bollwyvl Jun 30, 2020
c57e31a
Merge branch 'fix-change-of-unopened-files' into add-texlab-spec
bollwyvl Jul 1, 2020
68ffee7
linting
bollwyvl Jul 1, 2020
d3fb610
Merge branch 'fix-change-of-unopened-files' into add-texlab-spec
bollwyvl Jul 2, 2020
1eaf308
Merge remote-tracking branch 'upstream/master' into add-texlab-spec
bollwyvl Jul 2, 2020
650614c
fix tsx test name
bollwyvl Jul 2, 2020
5c74e42
Merge remote-tracking branch 'upstream/master' into add-texlab-spec
bollwyvl Jul 19, 2020
fda5598
Merge remote-tracking branch 'upstream/master' into add-texlab-spec
bollwyvl Jul 23, 2020
21ddb6c
add chktex to envs, update changelog
bollwyvl Jul 23, 2020
2810db2
check chktex tech with robot, further clarify robot
bollwyvl Jul 23, 2020
cb3586e
some docs about latex, warm up cache
bollwyvl Jul 23, 2020
8b4cbc2
add latex and markdown magics to robot notebook
bollwyvl Jul 23, 2020
4db5ea7
comment out latex magic test for now
bollwyvl Jul 25, 2020
2a68086
windows quoting for prettier
bollwyvl Jul 25, 2020
12c9d93
try a hard reload for win/latex config
bollwyvl Jul 25, 2020
6395a1b
try different reload approach
bollwyvl Jul 25, 2020
1ce8fc3
more work on win/latex config (works locally)
bollwyvl Jul 25, 2020
f44c918
try a lightweight fix for uri comparison
bollwyvl Jul 26, 2020
650e472
tweak some tests to avoid false webdriver 'rect' errors, wait for edi…
bollwyvl Jul 27, 2020
fce491e
test for latex lint that appears on windows
bollwyvl Jul 27, 2020
d420016
make tex error less fail-y
bollwyvl Jul 27, 2020
f2a7b1a
remove tab click
bollwyvl Jul 27, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
## CHANGELOG

### `jupyter-lsp 0.9.x` (unreleased)

- autodetects the `texlab` language server for `.tex` files ([#288][])
- diagnostics _should_ be provided by `chktex` on save, but don't yet appear,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😢

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can be updated :)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mentioned below, but if not configured with onChange or onSave, they never show.

Perhaps, as a separate issue, we may add a suggestedConfiguration which gets toasted/shown in the status bar when you start a particular server for the first time.

Also: watching the websocket logs: texlab's noisy! When onChange is set, you get back diagnostics even for documents never opened during the lifespan of that server. Maybe it's caching stuff someplace, but hopefully not a showstopper. I'm taking a look on binder, and it's probably fine, but still surprising.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems ok on binder, even with a number of files open.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean the wording could be more "needs configuration to work" rather "don't work but works if configured"

but can be configured through the Advanced Settings Editor to appear on save or change

[#288]: https://github.com/krassowski/jupyterlab-lsp/issues/288

### `@krassowski/jupyterlab-lsp 1.1.0` (2020-07-20)

- features
Expand Down
5 changes: 5 additions & 0 deletions atest/01_Editor.robot
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ SCSS
${def} = Set Variable xpath:(//span[contains(@class, 'cm-variable-2')][contains(text(), 'primary-color')])[last()]
Editor Shows Features for Language SCSS example.scss Diagnostics=Do not use empty rulesets Jump to Definition=${def}

LaTeX
[Tags] language:latex
${def} = Set Variable xpath:(//span[contains(@class, 'cm-atom')][contains(text(), 'foo')])[last()]
Editor Shows Features for Language LaTeX example.tex Jump to Definition=${def} Rename=${def}

TSX
${def} = Set Variable xpath:(//span[contains(@class, 'cm-tag')][contains(text(), 'HelloWorld')])[last()]
Editor Shows Features for Language TSX example.tsx Diagnostics=Cannot find module 'react' Jump to Definition=${def} Rename=${def}
Expand Down
22 changes: 18 additions & 4 deletions atest/03_Notebook.robot
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,26 @@ Python
Capture Page Screenshot 02-python.png
Clean Up After Working With File Python.ipynb

Foregin Extractors
Setup Notebook Python Foreign extractors.ipynb
Foreign Extractors
${file} = Set Variable Foreign extractors.ipynb
# #288: this would need to be restored for latex
#
# Configure JupyterLab Plugin {"language_servers": {"texlab": {"serverSettings": {"latex.lint.onChange": true}}}}
#
Setup Notebook Python ${file}
# if mypy and pyflakes will fight over `(N|n)ame 'valid'`, just hope for the best
@{diagnostics} = Create List Failed to parse expression ame 'valid' Trailing whitespace is superfluous.
@{diagnostics} = Create List
... Failed to parse expression # bash
... ame 'valid' # python
... Trailing whitespace is superfluous. # r
... `frob` is misspelt # markdown
#
# #288: once configured, diagnostics are coming back over the wire, but not displaying
#
# ... Command terminated with space # latex
#
FOR ${diagnostic} IN @{diagnostics}
Wait Until Page Contains Element css:.cm-lsp-diagnostic[title*\="${diagnostic}"] timeout=35s
Capture Page Screenshot 0x-${diagnostic}.png
END
Clean Up After Working With File Foreign Extractors.ipynb
[Teardown] Clean Up After Working with File and Settings ${file}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this may well have been causing issues...

41 changes: 29 additions & 12 deletions atest/07_Configuration.robot
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Python

YAML
[Documentation] EXPECT FAIL Composer YAML files don't allow a "greetings" key
[Tags] expect:fail
Settings Should Change Editor Diagnostics YAML example.yaml yaml-language-server
... {"yaml.schemas": {"http://json.schemastore.org/composer": "*"}}
... duplicate key
Expand All @@ -26,37 +27,53 @@ Markdown
... `Color` is misspelt
... `Colour` is misspelt

*** Keywords ***
Clean Up After Working with File and Settings
[Arguments] ${file}
Clean Up After Working With File ${file}
Reset Plugin Settings
LaTeX
[Documentation] diagnostics only appear if configured
${needs reload} = Set Variable "${OS}" == "Windows"
Settings Should Change Editor Diagnostics LaTeX example.tex texlab
... {"latex.lint.onChange": true}
... ${EMPTY}
... Command terminated with space. (chktex)
... Save File
... ${needs reload}

*** Keywords ***
Settings Should Change Editor Diagnostics
[Arguments] ${language} ${file} ${server} ${settings} ${before} ${after}
[Arguments] ${language} ${file} ${server} ${settings} ${before} ${after} ${save command}=${EMPTY} ${needs reload}=${False}
${before diagnostic} = Set Variable ${CSS DIAGNOSTIC}\[title^="${before}"]
${after diagnostic} = Set Variable ${CSS DIAGNOSTIC}\[title^="${after}"]
${tab} = Set Variable ${JLAB XP DOCK TAB}\[contains(., '${file}')]
${close icon} = Set Variable *[contains(@class, 'm-TabBar-tabCloseIcon')]
${save command} = Set Variable If "${save command}" ${save command} Save ${language} File
Prepare File for Editing ${language} config ${file}
Open in Advanced Settings ${LSP PLUGIN ID}
Drag and Drop By Offset ${tab} 0 100
Wait Until Fully Initialized
Open Diagnostics Panel
Drag and Drop By Offset ${JLAB XP DOCK TAB}\[contains(., 'Diagnostics Panel')] 600 -200
Click Element ${JLAB XP DOCK TAB}\[contains(., 'Launcher')]/${close icon}
Wait Until Page Contains Element ${before diagnostic} timeout=30s
Run Keyword If "${before}" Wait Until Page Contains Element ${before diagnostic} timeout=30s
Page Should Not Contain ${after diagnostic}
Capture Page Screenshot 01-default-diagnostics-and-settings.png
Set Editor Content {"language_servers": {"${server}": {"serverSettings": ${settings}}}} ${CSS USER SETTINGS}
Wait Until Page Contains No errors found
Capture Page Screenshot 01-default-diagnostics-and-settings.png
Capture Page Screenshot 02-default-diagnostics-and-unsaved-settings.png
Click Element css:button[title\='Save User Settings']
Click Element ${JLAB XP DOCK TAB}\[contains(., 'Settings')]/${close icon}
Click Element ${JLAB XP CLOSE SETTINGS}
Drag and Drop By Offset ${tab} 0 100
Lab Command Save ${language} File
Lab Command ${save command}
Ensure Sidebar Is Closed
Capture Page Screenshot 02-settings-changed.png
Capture Page Screenshot 03-settings-changed.png
Run Keyword If ${needs reload} Reload After Configuration ${language} ${file}
Wait Until Page Contains Element ${after diagnostic} timeout=30s
Capture Page Screenshot 03-configured-diagnostic-found.png
Capture Page Screenshot 04-configured-diagnostic-found.png
[Teardown] Clean Up After Working with File and Settings ${file}

Reload After Configuration
[Arguments] ${language} ${file}
Reload Page
Wait Until Keyword Succeeds 3x 5s Wait For Splash
Reset Application State
Prepare File for Editing ${language} config ${file}
Wait Until Fully Initialized
Open Diagnostics Panel
13 changes: 13 additions & 0 deletions atest/Keywords.robot
Original file line number Diff line number Diff line change
Expand Up @@ -286,3 +286,16 @@ Get Editor Content
[Arguments] ${css}=${EMPTY}
${content} = Execute JavaScript return document.querySelector('${css} .CodeMirror').CodeMirror.getValue()
[Return] ${content}

Configure JupyterLab Plugin
[Arguments] ${settings json} ${plugin id}=${LSP PLUGIN ID}
Open in Advanced Settings ${plugin id}
Set Editor Content ${settings json} ${CSS USER SETTINGS}
Wait Until Page Contains No errors found
Click Element css:button[title\='Save User Settings']
Click Element ${JLAB XP CLOSE SETTINGS}

Clean Up After Working with File and Settings
[Arguments] ${file}
Clean Up After Working With File ${file}
Reset Plugin Settings
1 change: 1 addition & 0 deletions atest/Variables.robot
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ ${CM CURSORS} css:.CodeMirror-cursors:not([style='visibility: hidden'])
${LSP PLUGIN ID} @krassowski/jupyterlab-lsp:plugin
${LSP PLUGIN SETTINGS FILE} @krassowski${/}jupyterlab-lsp${/}plugin.jupyterlab-settings
${CSS USER SETTINGS} .jp-SettingsRawEditor-user
${JLAB XP CLOSE SETTINGS} ${JLAB XP DOCK TAB}\[contains(., 'Settings')]/*[contains(@class, 'm-TabBar-tabCloseIcon')]
# diagnostics
${CSS DIAGNOSTIC} css:.cm-lsp-diagnostic
# log messages
Expand Down
37 changes: 36 additions & 1 deletion atest/examples/Foreign extractors.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,41 @@
"%%bash\n",
"echo $"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### $\\LaTeX$"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%latex\n",
"\n",
"\\foo bar"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Markdown"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%markdown\n",
"frob"
]
}
],
"metadata": {
Expand All @@ -84,7 +119,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.0"
"version": "3.7.6"
}
},
"nbformat": 4,
Expand Down
7 changes: 7 additions & 0 deletions atest/examples/example.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
\documentclass{article}

\begin{document}
\label{foo}
\ref{foo}
\foo This is an error.
\end{document}
4 changes: 4 additions & 0 deletions binder/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ dependencies:
- r-irkernel
- r-languageserver
- rpy2
# for tex
- tectonic
- texlab
- chktex
4 changes: 4 additions & 0 deletions ci/env-test.yml.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ dependencies:
- r-languageserver
- r-stringi >=1.4.6
- rpy2
# tex
- tectonic
- texlab
- chktex
bollwyvl marked this conversation as resolved.
Show resolved Hide resolved
# test tools
- pytest-asyncio
- pytest-azurepipelines
Expand Down
5 changes: 4 additions & 1 deletion ci/job.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ jobs:
- script: ${{ platform.activate }} && python scripts/jedi_cache.py
displayName: warm up jedi cache

- script: ${{ platform.activate }} && python scripts/tectonic_cache.py
displayName: warm up tectonic cache

- script: ${{ platform.activate }} && jlpm test
displayName: run frontend unit tests

Expand Down Expand Up @@ -109,7 +112,7 @@ jobs:
- script: ${{ platform.activate }} && jupyter labextension list
displayName: list labextensions after build

- script: ${{ platform.activate }} && python scripts/atest.py
- script: ${{ platform.activate }} && python scripts/atest.py --exclude expect:fail
displayName: run browser tests

- task: PublishTestResults@2
Expand Down
28 changes: 21 additions & 7 deletions docs/Installation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,27 @@
},
"outputs": [],
"source": [
"from markdown import markdown\n",
"import sys\n",
"sys.path.insert(0, '..')\n",
"\n",
"from markdown import markdown\n",
"\n",
"sys.path.insert(0, \"..\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"outputs": [],
"source": [
"from versions import (\n",
" JUPYTER_LSP_VERSION,\n",
" JUPYTERLAB_LSP_VERSION,\n",
" JUPYTERLAB_NEXT_MAJOR_VERSION,\n",
" JUPYTERLAB_VERSION,\n",
" REQUIRED_JUPYTERLAB\n",
" REQUIRED_JUPYTERLAB,\n",
")"
]
},
Expand Down Expand Up @@ -85,7 +97,7 @@
"#### conda (minimal python)\n",
"\n",
"```bash\n",
"conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab={JUPYTERLAB_VERSION}' 'nodejs>8' python-language-server\n",
"conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab={JUPYTERLAB_VERSION}' 'nodejs>10' python-language-server\n",
"# Also consider: r-languageserver [*]\n",
"source activate lsp\n",
"python -m pip install 'jupyter-lsp={JUPYTER_LSP_VERSION}' --no-deps\n",
Expand Down Expand Up @@ -125,13 +137,15 @@
"##### `Dockerfile`\n",
"\n",
"```dockerfile\n",
"# This already contains the python, r, julia, and nodejs runtimes\n",
"# This already contains the python, r, julia, latex, and nodejs runtimes\n",
"FROM jupyter/datascience-notebook@sha256:73a577b006b496e1a1c02f5be432f4aab969c456881c4789e0df77c89a0a60c2\n",
"\n",
"RUN conda install --quiet --yes --freeze-installed \\\n",
"RUN conda install --quiet --yes --freeze-installed -c conda-forge \\\n",
" 'python-language-server' \\\n",
" 'jupyterlab={JUPYTERLAB_VERSION}' \\\n",
" 'r-languageserver' \\\n",
" 'texlab' \\\n",
" 'chktex' \\\n",
" && python3 -m pip install --no-cache-dir --no-deps \\\n",
" 'jupyter-lsp={JUPYTER_LSP_VERSION}' \\\n",
" && jupyter labextension install --no-build \\\n",
Expand Down Expand Up @@ -285,7 +299,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.5"
"version": "3.7.6"
}
},
"nbformat": 4,
Expand Down
42 changes: 42 additions & 0 deletions docs/Language Servers.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,48 @@
"install them with [extra_node_roots](./Configuring.ipynb#extra_node_roots)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Other Scientific Languages\n",
"\n",
"These servers have been mostly tested with file editor."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"hide_input": true
},
"outputs": [],
"source": [
"sci_langs = [\"texlab\"]\n",
"lang_server_table(\n",
" {key: spec for key, spec in mgr.language_servers.items() if key in sci_langs}\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Example: Getting a $\\LaTeX$ stack\n",
"\n",
"```bash\n",
"conda install -y conda-forge tectonic texlab chktex\n",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this conda-only or is there a reasonable (maybe not single command I guess) alternative for let's say Ubuntu users?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

latex installation, care, and feeding, is one of my personal circles of support hell. for example, because i run a small root partition, i can't even use the "easy" route on my machine, unless i handpick all of the stuff it would need to work, because i would run out of disk space.

with this, like nodejs, or anything else in the stack, providing inaccurate install docs is worse than nothing, so i think the best thing we can do is:

  • provide a link to the various official install docs
  • show an example of what we know works, because keeping it working is on the critical path to us merging adding/changing feature.

the only way i'd be interested in documenting or supporting n distros, would be if we had additional Dockerfiles we ran the full battery of tests against with the release tarballs... and that seems like an awful lot for this

That being said, it looks like the docs aren't pick up the new spec:

https://jupyterlab-lsp--288.org.readthedocs.build/en/288/Language%20Servers.html#Other-Scientific-Languages

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About the docs - R does not show up on the PR builds too, but it is ok on master; would it have to do with your changes, or is it a limitation of the PR builds?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, my personal standpoint is that having a Debian/Ubuntu install is usually good enough. Not only because it is a common one, but also because I can always google "how to install X ubuntu package equivalent on Y" and it more often works than it doesn't (unless speaking of exotic distros). This trick also works for Y=Mac (sometimes).

But I think this is not holding this PR from being merged - let's just make sure we show links to official docs of the tools we require to make latex work!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess let's see how the docs build goes... I didn't have to do anything too fancy to the specs.

Debian/Ubuntu install is usually good enough

I suppose... but again, I've never tried to do one... it's definitely one of those things I Docker-and-forget in a build toolchahin. Indeed let's hope that the texlab docs link is sufficient.

"```\n",
"\n",
"This will install:\n",
"\n",
"- `tectonic`, a cross-platform $\\LaTeX$ processing tool\n",
" - note, it will download a large number of packages when first executed\n",
"- `texlab`, a Language Server for `.tex` files that supports completion and\n",
" refernce navigation\n",
"- `chktex`, a `.tex` style checker"
]
},
{
"cell_type": "code",
"execution_count": null,
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
"lab:link": "lerna run lab:link",
"lint:check": "jlpm prettier:check && jlpm eslint:check",
"lint": "jlpm prettier && jlpm eslint",
"prettier:check": "prettier --check '**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}'",
"prettier": "prettier --write '**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}'",
"prettier:check": "prettier --check \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}\"",
"prettier": "prettier --write \"**/*{.ts,.tsx,.js,.jsx,.css,.json,.md,.yml}\"",
"eslint": "eslint --config packages/.eslintrc.js --ext .js,.jsx,.ts,.tsx --fix packages",
"eslint:check": "eslint --config packages/.eslintrc.js --ext .js,.jsx,.ts,.tsx packages",
"test": "lerna run --stream --concurrency=1 test"
Expand Down
2 changes: 1 addition & 1 deletion packages/jupyterlab-lsp/src/extractors/defaults.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export let foreign_code_extractors: IForeignCodeExtractorsRegistry = {
pattern: '^%%(latex)( .*?)?\n([^]*)',
extract_to_foreign: '$3',
is_standalone: false,
file_extension: 'latex'
file_extension: 'tex'
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after making this change, the diagnostics do come over the wire, but they aren't showing up in the notebook... @krassowski thoughts?

}),
new RegExpForeignCodeExtractor({
language: 'markdown',
Expand Down
2 changes: 1 addition & 1 deletion packages/lsp-ws-connection/src/ws-connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ export class LspWsConnection extends events.EventEmitter
protected onServerInitialized(params: protocol.InitializeResult) {
this.isInitialized = true;
this.serverCapabilities = params.capabilities;
this.connection.sendNotification('initialized');
this.connection.sendNotification('initialized', {});
this.connection.sendNotification('workspace/didChangeConfiguration', {
settings: {}
});
Expand Down
Loading