tree-sitter-module VS typescript-language-server

Compare tree-sitter-module vs typescript-language-server and see what are their differences.

tree-sitter-module

Building script for tree-sitter language definitions (by casouri)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
tree-sitter-module typescript-language-server
10 53
158 1,714
- 2.9%
7.2 8.7
about 1 month ago 7 days ago
Shell TypeScript
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

tree-sitter-module

Posts with mentions or reviews of tree-sitter-module. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-14.
  • Let's write an Emacs treesitter major mode
    7 projects | news.ycombinator.com | 14 Sep 2023
    BTW:

    While Emacs 29.1 comes with "treesitter" built-in, you still need to manually build and install any treesitter language plugin implementing the actual language specific parser. This can be fiddly and frustrating doing it yourself.

    I had a quick success with using this convenience script: https://github.com/casouri/tree-sitter-module/. It provides fully-automated builds for the most popular languages (including typescript, c and c++).

    This is how it works for "typescript":

    1. Clone the repository: https://github.com/casouri/tree-sitter-module/

    2. Install "build-essentials" (providing a c/c++ compiler if you're on Linux).

    3. run "./build typescript" from within the repo

    4. Copy the resulting shared library from "dist/libtree-sitter-typescript.so" into your "~/.emacs.d/tree-sitter/".

    5. Open a random typescript file and try "M-x typescript-ts-mode" which should not give you any error but instead nice syntax highlighting.

    You might find there is a treesitter plugin for your language available and it is even supported by "tree-sitter-module" but there is still no major mode, yet. Happened to me for Perl 5.

  • Mastering Emacs: What's new in Emacs 29.1
    6 projects | news.ycombinator.com | 7 Sep 2023
    I will look into building my own tree sitter grammars using https://github.com/casouri/tree-sitter-module as you suggest.

    Some time ago I followed this guide https://vxlabs.com/2022/06/12/typescript-development-with-em...

  • Getting Emacs 29 to Automatically Use Tree-sitter Modes ยท robbmann
    2 projects | /r/emacs | 22 Jan 2023
    ;; FIRST: git clone https://github.com/casouri/tree-sitter-module ;; bash batch.sh ;; THEN : sudo cp dist/* /usr/local/lib ;; FINALLY: (setq treesit-extra-load-path '("/usr/local/lib")) ;; Treesit ;; Eglot (setq treesit-eglot-modes '((:ts (bash-mode . bash-ts-mode) :pacman "bash-language-server") (:ts (c++-mode . c++-ts-mode) :pacman "ccls") (:ts (c-mode . c-ts-mode) :pacman "ccls") (:ts (cpp-mode . cpp-ts-mode) :pacman "ccls") (:ts (c-sharp-mode . sharp-ts-mode)) (:ts (cmake-mode . cmake-ts-mode)) (:ts (css-mode . css-ts-mode) :pacman "vscode-css-languageserver") (:ts (dockerfile-mode . dockerfile-ts-mode)) (:ts (elixir-mode . elixir-ts-mode)) (:ts (glsl-mode . glsl-ts-mode)) (:ts (go-mode . go-ts-mode) :pacman "gopls") (:ts (heex-mode . heex-ts-mode)) (:ts (html-mode . html-ts-mode) :pacman "vscode-html-languageserver") (:ts (java-mode . java-ts-mode)) (:ts (javascript-mode . js-ts-mode) :pacman "typescript-language-server") (:ts (js-json-mode . json-ts-mode) :pacman "vscode-json-languageserver") (:ts (julia-mode . julia-ts-mode)) (:ts (make-mode . make-ts-mode)) (:ts (markdown-mode . markdown-ts-mode)) (:ts (python-mode . python-ts-mode) :pacman "jedi-language-server") (:ts (typescript-mode . typescript-ts-mode) :pacman "typescript-language-server") (:ts (proto-mode . proto-ts-mode)) (:ts (ruby-mode . ruby-ts-mode)) (:ts (rust-mode . rust-ts-mode) :pacman "rust-analyzer") (:ts (sql-mode . sql-ts-mode)) (:ts (toml-mode . toml-ts-mode)) (:ts (tsx-mode . tsx-ts-mode)) (:ts (verilog-mode . verilog-ts-mode)) (:ts (vhdl-mode . vhdl-ts-mode)) (:ts (wgsl-mode . wgsl-ts-mode)) (:ts (yaml-mode . yaml-ts-mode) :pacman "yaml-language-server"))) ;; Not mature yet: ;; (push '(org-mode . org-ts-mode) major-mode-remap-alist) ;; (push '(perl-mode . perl-ts-mode) major-mode-remap-alist) ;; cpan Perl::LanguageServer (require 'treesit) ;; Function to parse the above and make an install command (if (treesit-available-p) (let ((pacman-install-list (list ))) (dolist (ts-pm treesit-eglot-modes) (let ((majmode-remap (plist-get ts-pm :ts)) (pacman-cmd (plist-get ts-pm :pacman))) ;; bind default major-mode to ts-mode (push majmode-remap major-mode-remap-alist) ;; populate install cmd (if pacman-cmd (unless (member pacman-cmd pacman-install-list) (push pacman-cmd pacman-install-list))))) (let ((install-cmd (concat "pacman -S --needed " (--reduce (concat acc " " it) pacman-install-list)))) (message install-cmd))) (user-error "Treesitter not available"))
  • tree-sitter-module: Building script for tree-sitter language definitions
    1 project | /r/planetemacs | 28 Dec 2022
  • Emacs 29: Install Tree-Sitter parser modules with a minor mode
    3 projects | /r/emacs | 26 Dec 2022
    Also this https://github.com/casouri/tree-sitter-module/issues/13
  • Do I still need to install tree-sitter manually, for native tree-sitter in emacs29 to work?
    2 projects | /r/emacs | 20 Dec 2022
    I've downloaded and generated the libraries for the various languages from: https://github.com/casouri/tree-sitter-module
  • Setup Eglot in Emacs29 to recognize Python virtualenv
    1 project | /r/emacs | 18 Dec 2022
    Third, I'm using tsitter in emacs29. I have https://github.com/casouri/tree-sitter-module installed as a sub-module in ~/.config/emacs, and have a symlink called tree-sitter to ./tree-sitter-module/dist (built by ./tree-sitter-module/batch.sh) . I'm mentioning the tsitter config here since I'm using python-ts-mode which is tree-sitter aware.
  • Is anyone working on a ruby tree sitter mode?
    1 project | /r/emacs | 6 Dec 2022
    I'd recommend checking out https://github.com/casouri/tree-sitter-module for building the native treesit libraries that are required to enable the various languages.
  • How to use Emacs 29 Tree-sitter?
    12 projects | /r/emacs | 3 Dec 2022
    The author of the built-in tree-sitter implementation has published this repo with a build script to help you build various grammars: https://github.com/casouri/tree-sitter-module

typescript-language-server

Posts with mentions or reviews of typescript-language-server. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-12.
  • Helix - Front-End Power
    8 projects | dev.to | 12 Mar 2024
  • What is JSDoc and why you may not need typescript for your next project?
    8 projects | dev.to | 22 Jan 2024
    Besides the features TypeScript itself proposed, the most important thing it brought to the community was the ability to create cool features around this compiler that enhance the developer experience and productivity. Tools like tsserver, pretty ts errors, and many others are actively improving the ecosystem for both JavaScript and TypeScript writers.
  • A guide on Neovim's LSP client
    7 projects | dev.to | 13 Jan 2024
    Sometimes a language server can support multiple filetypes. An example of this is tsserver, the language server for javascript and typescript. In this case a filetype plugin can still work but there is an easier way to go about it.
  • Suspense your federated component with caution
    1 project | dev.to | 14 Oct 2023
    in this way the ts server can detect and parse the component from the microfronent, thanks to monorepos!
  • Let's write an Emacs treesitter major mode
    7 projects | news.ycombinator.com | 14 Sep 2023
    That was interesting, thanks for pointing it out

    I was tremendously sad to see that the Typescript Language Server wasn't owned by Microsoft <https://microsoft.github.io/language-server-protocol/impleme...>, since if there was any sanity in the world a spec bump would travel with a reference implementation showing how they envision such a thing being used

    But, I found that the Typescript Language Server that they did list does indeed have a semantic-tokens module in it, although it's much shorter than I would have expected from reading that section in the spec: https://github.com/typescript-language-server/typescript-lan...

  • How do I select which LSP is currently running?
    1 project | /r/HelixEditor | 17 Aug 2023
    I would like to use svelte language server when working on +page.server.ts files and not the typescript language server.
  • Formatting on save not working
    3 projects | /r/HelixEditor | 5 Jul 2023
    [[language]] name = "python" roots = ["pyproject.toml"] formatter = { command = "black", args = ["--quiet", "-"] } language-server = { command = "pyright-langserver", args = ["--stdio"] } config = {} auto-format = true [[language]] name = "rust" auto-format = true # [[language]] # name = "typescript" # auto-format = true # formatter = { command = "prettier", args = ["--parser", "typescript"]} # # pass format options according to https://github.com/typescript-language-server/typescript-language-server#workspacedidchangeconfiguration omitting the "[language].format." prefix. # config = { format = { "semicolons" = "insert", "insertSpaceBeforeFunctionParenthesis" = true } } [[language]] name = "tsx" formatter = { command = 'prettier', args = ["--parser", "typescript"] } auto-format = true [[language]] name = "javascript" auto-format = true formatter = { command = 'npx', args = ["prettier", "--config", ".prettierrc", "--parser", "javascript"] } # formatter = { command = "prettier", args = ["--parser", "javascript"]} [[language]] name = "css" formatter = { command = 'prettier', args = ["--parser", "css"] } [[language]] name = "markdown" # https://github.com/executablebooks/mdformat formatter = { command = "mdformat", args = ["-"] } [[language]] name = "json" formatter = { command = "prettier", args = ["--parser", "json"] } [[language]] name = "toml" auto-format = true # https://github.com/bd82/toml-tools/tree/master/packages/prettier-plugin-toml formatter = { command = "prettier", args = ["--parser", "toml"] } [[language]] name = "yaml" indent = { tab-width = 2, unit = " " } formatter = { command = "prettier", args = ["--parser", "yaml"] } [[language]] name = "astro" scope = "source.astro" injection-regex = "astro" file-types = ["astro"] roots = ["package.json", "astro.config.mjs"] language-server = { command = "astro-ls", args = ["--stdio"] } config = { "typescript" = { serverPath = "/Users/matteostara/.nvm/versions/node/v18.16.0/bin/typescript-language-server" }, "environment" = "node" }
  • Struggling with javascript completion with LSP
    2 projects | /r/emacs | 15 Jun 2023
    Depending on the language server version, you may be running into https://github.com/typescript-language-server/typescript-language-server/issues/631. I temporarily fixed it for me by simply sticking with an old enough server build, though judging by the latest typescript-language-server commits a very recent build from master should also work
  • There's another typescript LSP that wraps the official VSCode typescript extension and has almost the same features - vtsls
    6 projects | /r/neovim | 28 Apr 2023
    Before, I was using typescript-language-server as it is LSP compliant but it was slow and lacks the features of what VSCode's implementation has, like extracting functions, constants, types into interfaces or alias and single imports. Auto-completion was also not very predictive as sometimes it works and sometimes it doesn't. For instance, I was having trouble getting it to auto-complete common attributes like className or href in JSX projects. It could be that I may be doing something wrong but didn't find any solution on how to get it properly working.
  • What could cause my LSP to be so slow and sluggish? Takes anywhere from 1 to 8 seconds to show auto-completion results and hide/ unhide errors.
    7 projects | /r/neovim | 13 Apr 2023
    Then this is highly likely issue of typescript-language-server. You might consider opening an issue for it.

What are some alternatives?

When comparing tree-sitter-module and typescript-language-server you can also consider the following projects:

treesit-auto - Automatic installation, usage, and fallback for tree-sitter major modes in Emacs 29

deno - A modern runtime for JavaScript and TypeScript.

tree-sitter-langs - Language bundle for Emacs's tree-sitter package

nvim-lspconfig - Quickstart configs for Nvim LSP

tree-sitter-c-sharp - C# Grammar for tree-sitter

null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

tree-sitter-typescript - TypeScript grammar for tree-sitter

nvim-lsp-ts-utils - Utilities to improve the TypeScript development experience for Neovim's built-in LSP client.

nvim-treesitter-textobjects

nvim-lspinstall - Provides the missing :LspInstall for nvim-lspconfig

git-sim - Visually simulate Git operations in your own repos with a single terminal command.

TypeScript - IO wrapper around TypeScript language services, allowing for easy consumption by editor plugins