Skip to content

Commit

Permalink
feat(ts_ls)!: rename tsserver to ts_ls #3232
Browse files Browse the repository at this point in the history
`tsserver` cannot be used as an abbreviation for `typescript-language-server`, because there is [`tsserver`](https://github.com/microsoft/TypeScript/wiki/Standalone-Server-(tsserver)) already and it is completely different from `typescript-language-server`. This is misleading.

As the [README of `typescript-language-server`](https://github.com/typescript-language-server/typescript-language-server/blob/master/README.md) says, it's a wrapper of `tsserver`. This abuse has been around for so many time in lspconfig that people don't realize they are two different things, and are then confused by replacements of `typescript-language-server` like [typescript-tools.nvim](https://github.com/pmizio/typescript-tools.nvim) and [vtsls](https://github.com/yioneko/vtsls).
  • Loading branch information
ofseed authored Sep 5, 2024
1 parent 0ef6459 commit bdbc65a
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 86 deletions.
84 changes: 43 additions & 41 deletions doc/server_configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ autogenerated from the Lua files. You can view this file in Nvim by running
- [thriftls](#thriftls)
- [tilt_ls](#tilt_ls)
- [tinymist](#tinymist)
- [ts_ls](#ts_ls)
- [tsp_server](#tsp_server)
- [tsserver](#tsserver)
- [ttags](#ttags)
- [turtle_ls](#turtle_ls)
- [tvm_ffi_navigator](#tvm_ffi_navigator)
Expand Down Expand Up @@ -11691,7 +11691,7 @@ require'lspconfig'.superhtml.setup{}

https://github.com/sveltejs/language-tools/tree/master/packages/language-server

Note: assuming that [tsserver](#tsserver) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).
Note: assuming that [ts_ls](#ts_ls) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).

`svelte-language-server` can be installed via `npm`:
```sh
Expand Down Expand Up @@ -12527,44 +12527,12 @@ require'lspconfig'.tinymist.setup{}
```


## tsp_server

https://github.com/microsoft/typespec

The language server for TypeSpec, a language for defining cloud service APIs and shapes.

`tsp-server` can be installed together with the typespec compiler via `npm`:
```sh
npm install -g @typespec/compiler
```



**Snippet to enable the language server:**
```lua
require'lspconfig'.tsp_server.setup{}
```


**Default values:**
- `cmd` :
```lua
{ "tsp-server", "--stdio" }
```
- `filetypes` :
```lua
{ "typespec" }
```
- `root_dir` :
```lua
util.root_pattern("tspconfig.yaml", ".git")
```


## tsserver
## ts_ls

https://github.com/typescript-language-server/typescript-language-server

`ts_ls`, aka `typescript-language-server`, is a Language Server Protocol implementation for TypeScript wrapping `tsserver`. Note that `ts_ls` is not `tsserver`.

`typescript-language-server` depends on `typescript`. Both packages can be installed via `npm`:
```sh
npm install -g typescript typescript-language-server
Expand Down Expand Up @@ -12598,7 +12566,7 @@ adds Vue support to this language server.
*IMPORTANT*: It is crucial to ensure that `@vue/typescript-plugin` and `volar `are of identical versions.

```lua
require'lspconfig'.tsserver.setup{
require'lspconfig'.ts_ls.setup{
init_options = {
plugins = {
{
Expand Down Expand Up @@ -12631,7 +12599,7 @@ require'lspconfig'.tsserver.setup{

**Snippet to enable the language server:**
```lua
require'lspconfig'.tsserver.setup{}
require'lspconfig'.ts_ls.setup{}
```


Expand Down Expand Up @@ -12660,6 +12628,40 @@ require'lspconfig'.tsserver.setup{}
```


## tsp_server

https://github.com/microsoft/typespec

The language server for TypeSpec, a language for defining cloud service APIs and shapes.

`tsp-server` can be installed together with the typespec compiler via `npm`:
```sh
npm install -g @typespec/compiler
```



**Snippet to enable the language server:**
```lua
require'lspconfig'.tsp_server.setup{}
```


**Default values:**
- `cmd` :
```lua
{ "tsp-server", "--stdio" }
```
- `filetypes` :
```lua
{ "typespec" }
```
- `root_dir` :
```lua
util.root_pattern("tspconfig.yaml", ".git")
```


## ttags

https://github.com/npezza93/ttags
Expand Down Expand Up @@ -13538,8 +13540,8 @@ Volar by default supports Vue 3 projects. Vue 2 projects need
[additional configuration](https://github.com/vuejs/language-tools/tree/master/packages/vscode-vue#usage).

**TypeScript support**
As of release 2.0.0, Volar no longer wraps around tsserver. For typescript
support, `tsserver` needs to be configured with the `@vue/typescript-plugin`
As of release 2.0.0, Volar no longer wraps around ts_ls. For typescript
support, `ts_ls` needs to be configured with the `@vue/typescript-plugin`
plugin.

**Take Over Mode**
Expand Down
84 changes: 43 additions & 41 deletions doc/server_configurations.txt
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ autogenerated from the Lua files. You can view this file in Nvim by running
- [thriftls](#thriftls)
- [tilt_ls](#tilt_ls)
- [tinymist](#tinymist)
- [ts_ls](#ts_ls)
- [tsp_server](#tsp_server)
- [tsserver](#tsserver)
- [ttags](#ttags)
- [turtle_ls](#turtle_ls)
- [tvm_ffi_navigator](#tvm_ffi_navigator)
Expand Down Expand Up @@ -11691,7 +11691,7 @@ require'lspconfig'.superhtml.setup{}

https://github.com/sveltejs/language-tools/tree/master/packages/language-server

Note: assuming that [tsserver](#tsserver) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).
Note: assuming that [ts_ls](#ts_ls) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).

`svelte-language-server` can be installed via `npm`:
```sh
Expand Down Expand Up @@ -12527,44 +12527,12 @@ require'lspconfig'.tinymist.setup{}
```


## tsp_server

https://github.com/microsoft/typespec

The language server for TypeSpec, a language for defining cloud service APIs and shapes.

`tsp-server` can be installed together with the typespec compiler via `npm`:
```sh
npm install -g @typespec/compiler
```



**Snippet to enable the language server:**
```lua
require'lspconfig'.tsp_server.setup{}
```


**Default values:**
- `cmd` :
```lua
{ "tsp-server", "--stdio" }
```
- `filetypes` :
```lua
{ "typespec" }
```
- `root_dir` :
```lua
util.root_pattern("tspconfig.yaml", ".git")
```


## tsserver
## ts_ls

https://github.com/typescript-language-server/typescript-language-server

`ts_ls`, aka `typescript-language-server`, is a Language Server Protocol implementation for TypeScript wrapping `tsserver`. Note that `ts_ls` is not `tsserver`.

`typescript-language-server` depends on `typescript`. Both packages can be installed via `npm`:
```sh
npm install -g typescript typescript-language-server
Expand Down Expand Up @@ -12598,7 +12566,7 @@ adds Vue support to this language server.
*IMPORTANT*: It is crucial to ensure that `@vue/typescript-plugin` and `volar `are of identical versions.

```lua
require'lspconfig'.tsserver.setup{
require'lspconfig'.ts_ls.setup{
init_options = {
plugins = {
{
Expand Down Expand Up @@ -12631,7 +12599,7 @@ require'lspconfig'.tsserver.setup{

**Snippet to enable the language server:**
```lua
require'lspconfig'.tsserver.setup{}
require'lspconfig'.ts_ls.setup{}
```


Expand Down Expand Up @@ -12660,6 +12628,40 @@ require'lspconfig'.tsserver.setup{}
```


## tsp_server

https://github.com/microsoft/typespec

The language server for TypeSpec, a language for defining cloud service APIs and shapes.

`tsp-server` can be installed together with the typespec compiler via `npm`:
```sh
npm install -g @typespec/compiler
```



**Snippet to enable the language server:**
```lua
require'lspconfig'.tsp_server.setup{}
```


**Default values:**
- `cmd` :
```lua
{ "tsp-server", "--stdio" }
```
- `filetypes` :
```lua
{ "typespec" }
```
- `root_dir` :
```lua
util.root_pattern("tspconfig.yaml", ".git")
```


## ttags

https://github.com/npezza93/ttags
Expand Down Expand Up @@ -13538,8 +13540,8 @@ Volar by default supports Vue 3 projects. Vue 2 projects need
[additional configuration](https://github.com/vuejs/language-tools/tree/master/packages/vscode-vue#usage).

**TypeScript support**
As of release 2.0.0, Volar no longer wraps around tsserver. For typescript
support, `tsserver` needs to be configured with the `@vue/typescript-plugin`
As of release 2.0.0, Volar no longer wraps around ts_ls. For typescript
support, `ts_ls` needs to be configured with the `@vue/typescript-plugin`
plugin.

**Take Over Mode**
Expand Down
4 changes: 4 additions & 0 deletions lua/lspconfig.lua
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ local function server_alias(name)
to = 'lua_ls',
version = '0.2.0',
},
tsserver = {
to = 'ts_ls',
version = '0.2.0',
},
}

return aliases[name]
Expand Down
2 changes: 1 addition & 1 deletion lua/lspconfig/server_configurations/svelte.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ return {
description = [[
https://github.com/sveltejs/language-tools/tree/master/packages/language-server
Note: assuming that [tsserver](#tsserver) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).
Note: assuming that [ts_ls](#ts_ls) is setup, full JavaScript/TypeScript support (find references, rename, etc of symbols in Svelte files when working in JS/TS files) requires per-project installation and configuration of [typescript-svelte-plugin](https://github.com/sveltejs/language-tools/tree/master/packages/typescript-plugin#usage).
`svelte-language-server` can be installed via `npm`:
```sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ return {
description = [[
https://github.com/typescript-language-server/typescript-language-server
`ts_ls`, aka `typescript-language-server`, is a Language Server Protocol implementation for TypeScript wrapping `tsserver`. Note that `ts_ls` is not `tsserver`.
`typescript-language-server` depends on `typescript`. Both packages can be installed via `npm`:
```sh
npm install -g typescript typescript-language-server
Expand Down Expand Up @@ -52,7 +54,7 @@ adds Vue support to this language server.
*IMPORTANT*: It is crucial to ensure that `@vue/typescript-plugin` and `volar `are of identical versions.
```lua
require'lspconfig'.tsserver.setup{
require'lspconfig'.ts_ls.setup{
init_options = {
plugins = {
{
Expand Down
4 changes: 2 additions & 2 deletions lua/lspconfig/server_configurations/volar.lua
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ Volar by default supports Vue 3 projects. Vue 2 projects need
[additional configuration](https://github.com/vuejs/language-tools/tree/master/packages/vscode-vue#usage).
**TypeScript support**
As of release 2.0.0, Volar no longer wraps around tsserver. For typescript
support, `tsserver` needs to be configured with the `@vue/typescript-plugin`
As of release 2.0.0, Volar no longer wraps around ts_ls. For typescript
support, `ts_ls` needs to be configured with the `@vue/typescript-plugin`
plugin.
**Take Over Mode**
Expand Down

0 comments on commit bdbc65a

Please sign in to comment.