Hacker News new | ask | show | jobs
by rafram 265 days ago
Why not Monaco? It works great.

https://github.com/microsoft/monaco-editor

3 comments

The title doesn't make it clear that it's actually about TypeScript plus Deno-specific syntax — and Deno's LSP doesn't run in a worker [1].

[1]: https://github.com/denoland/vscode_deno/issues/515

yet

They could have also contributed to the effort. You can also add types to monaco typescript. I don’t see a need for a Deno specific LSP, am I missing something?

The biggest deal difference between the Deno LSP and Typescript sort-of-LSP in my experience is around the import model. Typescript has a bunch of "module resolution" modes based on various combinations of browser, bundler, and/or Node. For various reasons the Deno LSP is the only encoding of the Deno "module resolution' and upstream Typescript doesn't have a "denoX" set of "module resolution" options.

The second biggest deal is that the Deno LSP also includes a full linter, versus for the full experience the Typescript not-quite-LSP is often paired with the ESLint VS Code extension and a large eslint install.

Deno's LSP is also sometimes preferred for being a single Rust binary that runs quicker than Typescript's not-quite-LSP (plus or minus ESLint's non-LSP). It may be interesting to see how Golang Typescript's real-LSP fares in comparison in a future version.

Ah interesting, Yes i see what you’re saying regarding eslint and didn’t consider that. I’m a big of newer linters with better perf but none match the depth currently with eslint. Will keep an eye out on deno lsp!
I've built significant applications using Monaco, including things that tie into custom LSPs.

They really just should have used Monaco. This will be a burden to maintain and won't be a core differentiator.

Codemirror nowadays has first-party LSP support: https://github.com/codemirror/lsp-client
CodeMirror 6 is more modern with better accessibility and variable width fonts.
CodeMirror 6 is more modern than the editor that powers VS Code?