deno
typescript-language-server
Our great sponsors
deno | typescript-language-server | |
---|---|---|
429 | 49 | |
90,874 | 1,458 | |
0.7% | 5.1% | |
8.9 | 8.3 | |
4 days ago | 4 days ago | |
Rust | TypeScript | |
MIT License | GNU General Public License v3.0 or later |
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.
deno
-
Deno by Example
Here is the relevant Github issue with a better explanation:
-
stripe-node with Deno
Deno, version 1.28 or later.
-
Node.js vs. Deno vs. Bun: JavaScript runtime comparison
import { serve } from "https://deno.land/[email protected]/http/server.ts"; const handler = async (_request: Request): Promise => { const resp = await fetch("https://api.github.com/users/denoland", { // The init object here has an headers object containing a // header that indicates what type of response we accept. // We're not specifying the method field since by default // fetch makes a GET request. headers: { accept: "application/json", }, }); return new Response(resp.body, { status: resp.status, headers: { "content-type": "application/json", }, }); }; serve(handler);
-
Deno KV Is in Open Beta
Does this change your mind at all? https://github.com/denoland/deno/blob/be1fc754a14683bf640b7b...
It looks to me like they've documented the KV Connect protocol they invented to support this feature, in enough detail that anyone else could build an alternative backend for it.
This has helped me feel completely OK with how they're handling this. They get an advantage in that they've already built an extremely robust proprietary backend, but I find that acceptable given the documented protocol.
Yes, sort of - on Deno Deploy the authentication doesn't come from a token in env vars, but from intrinsic security tickets baked into the Deno Deploy system. Also, it's a bit faster on first connect, because compared to KV connect we can skip the metadata exchange[1] because the information it provides is already present in Deno Deploy through other means. Both the backend service and frontend API (JS->KV) is the same though :)
[1]: https://github.com/denoland/deno/blob/be1fc754a14683bf640b7b...
-
The Ascent of Node.js: How a runtime changed the Web
import { serve } from "https://deno.land/[email protected]/http/server.ts";
- Ask HN: Where do I find good code to read?
- Deno.land is down, which means Supabase functions are down locally
-
Enhancing AWS Lambda Security with Deno
Deno is an alternative JavaScript runtime that was released back in 2020. I’ve been seeing more interest in it recently, and it has some compelling features:
-
Introducing Atomic Emails – Self-hosted temporary email platform wherever you need it.
Most platform connectors are written on Deno, that allows you to host them serverless for free!
typescript-language-server
-
Let's write an Emacs treesitter major mode
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...
-
Formatting on save not working
[[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
Crossposting from github, because the response rate there has been pretty slow: https://github.com/typescript-language-server/typescript-language-server/discussions/730
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
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.
Then this is highly likely issue of typescript-language-server. You might consider opening an issue for it.
-
PSA: Configuring LSP w/o nvim-lspconfig is Simple!
This is not the case! After reading the LSP help pages (:help lsp), I installed and configured two language servers: Typescript Language Server for JavaScript and Pyright for Python. Neovim has fantastic defaults, so things like tags, omnicompletion, and semantic highlighting (New in 0.9) are enabled and configured by default as long as your language server supports them. You can see my configuration below.
- Which LSP Server for Python and JavaScript?
-
How to access tsserver code actions?
Open feature request to typescript-language-server or check corresponding implementaion in vscode and make a pr for it.
-
How do I achieve JavaScript code completition with nvim-cmp and Mason ?
Use mason to install tsserver, or directly install it on your computer following typescript-language-server. Note that your javascript's ls is powered by tsserver not eslint since eslint is a linter, not a ls.
What are some alternatives?
ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
nvim-lspconfig - Quickstart configs for Nvim LSP
null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
nvim-lsp-ts-utils - Utilities to improve the TypeScript development experience for Neovim's built-in LSP client.
esbuild - An extremely fast bundler for the web
nvim-lspinstall - Provides the missing :LspInstall for nvim-lspconfig
bun - Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
pnpm - Fast, disk space efficient package manager
Koa - Expressive middleware for node.js using ES2017 async functions
TypeScript - IO wrapper around TypeScript language services, allowing for easy consumption by editor plugins
neovim - Vim-fork focused on extensibility and usability
warp-reverse-proxy - Fully composable warp filter that can be used as a reverse proxy.