Changelog#
Unreleased 9.0.1#
- Fix Accommodate renaming of lsp-postgres binaries
- Fix
lsp-orgfor org >= 9.7 (see #4300) - Add format on save support
- Fix beancount journal file init option
- Add support for earthlyls
- Add support for GNAT Project (
gpr-mode,gpr-ts-mode). - Add SQL support
- Add support for Meson build system. (
meson-mode). - Add support for go to definition for external files (.dll) in CSharp projects for OmniSharp server.
- Added a new optional
:action-filterargument when defining LSP clients that allows code action requests to be modified before they are sent to the server. This is used by the Haskell language server client to work around anlsp-modeparsing quirk that incorrectly sendsnullvalues instead offalsein code action requests. - Add support for C# via the Roslyn language server.
- Add basic support for pull diagnostics requests.
- Add
lsp-flush-delayed-changes-before-next-messagecustomization point to enforce throttling document change notifications. - Add
lsp-sql-show-tablescommand. - Fix bug in
rust-analyzer.check.featuresconfiguration vialsp-rust-checkonsave-featuresEmacs setting: we were defaulting to[], butrust-analyzerdefaults to inheriting the value fromrust-analyzer.cargo.features. The bug resulted in code hidden behind features not getting type checked when those features were enabled by settingrust-analyzer.cargo.featuresvia thelsp-rust-featuresEmacs setting. - Change
ruff-lsptorufffor python lsp client. Allruff-lspcustomizable variable change toruff. Lsp server command now is["ruff" "server"]instead of["ruff-lsp"]. - Add futhark support
- Optimize overlay creation by checking window visibility first
- Replace the per-interface
(INTERFACE ...)pcase forms with a single, unified(lsp-interface INTERFACE ...)form. The per-interface forms are no longer generated. This is a breaking change. (See #4430.) - If asm-lsp is installed, lsp-asm won't try to download it to cache store
- Fix lsp-unzip on windows when unzip was found on the PATH
- Fix zls wrong bin path
- Add support for buf CLI (beta)
- Add fennel support
- Add support for Nextflow
- Add TypeSpec support
- Add Tree-sitter query support
- Add helm-ls (YAML Kubernetes Helm) support.
- Add
lsp-bash-allowed-shellsto configure supportedsh-shellvalues. - Add hint about
activation-fnfor unsupported buffers. - Add Roc support
- Add support for environment variables in rust analyzer runnables.
Allowing the new
Update Tests (Expect)code lens to work as expected. - Add support for MATLAB language server (requires matlab-mode).
- Add support for c3 language (requires c3-ts-mode and c3lsp).
- Drop support for emacs 27.1 and 27.2
- Add
lsp-nix-nixd-server-argumentsto allow passing arguments to thenixdLSP. - Improve the lsp-ocaml client (see #4731 for the follow-up issue. MRs: #4741, #4732)
- Add support for
source.removeUnusedImportsfor lsp-javascript - Add Python(ty) support
- Add support for Tombi language server (TOML language).
- Make lsp-headerline–check-breadcrumb public
- Added Odin langauge server support ols
- Fix bug in lsp-odin where
f-joincollapses double slashes. Usingformatinstead. - Fix missing gopls inlay hints when
lsp-use-plistis true - Fix bug where persist was attempted when lsp-session-file is nil
- Debugging tests in Rust no longer runs all the tests prior to launching debug session.
9.0.0#
- Add language server config for QML (Qt Modeling Language) using qmlls.
- Add new configuration options for lsp-html. Now able to toggle documentation hovers. Custom data is no longer experimental, and is now a vector.
- Add support for RPM spec files
- Add support for installing lsp dependencies via Cargo.
- Fix tramp support issues (see #4204)
- Add Cypher support.
- Add Mojo 🔥 support
- Add lsp-solidity, using the implementation from NomicFoundation
- Change rust-analyzer base URL to be github.com/rust-lang/rust-analyzer, rather than rust-analyzer/rust-analyzer.
- Add support for wgsl using wgsl-analyzer
- Add jq-lsp
- Add architecture triples for erlang-language-platform file downloads, to support macos on ARM and X86.
- Add semantic token support for erlang-language-platform in lsp-erlang client.
- Update erlang-language-platform download file names to match new upstream names.
- Add erlang-language-platform support in lsp-erlang client.
- Add credo-language-server
- Add support for clojure-ts-mode in clojure-lsp client
- terraform-ls now supports prefill required fields and the ability to validate on save.
- Ignore
.terraformand.terragrunt-cachedirectories lsp-bashnow supportsbash-ts-mode,ebuild-modeandenvrc-file-modelsp-ruby-syntax-tree,lsp-solargraph,lsp-sorbet,lsp-steep, andlsp-typeprofnow supportruby-ts-mode- Drop support for emacs 26.1 and 26.2
- Added support for
textDocument/linkedEditingRangevialsp-iedit-linked-rangesandlsp-evil-multiedit-ranges(see #3166) - Add GraphQL Language Server for autocomplete graphql query
- Added
lsp-auto-touch-files. When it is non-nil it will auto-create the file on the disk before sendingtextDocument/didOpen. - Add
lsp-log-io-allowlist-methodsfor debugging purposes. - Enable `lsp-lens-enable` by default.
- Add TOML support.
- Add Nginx support.
- Disable noisy features from
lsp-ui:lsp-ui-sideline-show-code-actionsandlsp-ui-doc-show-with-cursor. - Fix org mode support. #3258
- Add remark-language-server
- Deprecate unified-languge-server in favor of remark-language-server
- Made it possible to disable
lsp-response-timeoutentirely. - Fix csharp-ls startup on emacs@master (and emacs@emacs-28 on macOS) due to a switch posixspawn and not setting proper sigmask on child processes.
- Fix incorrect
lsp-fsharpdefcustom types. - Add
lsp-fsharp-generate-binlog. - Update installation mechanism for fsautocomplete (lsp-fsharp) to use
dotnet tool install -g. - Fix fsautocomplete (lsp-fsharp) startup on emacs@master (and
emacs@emacs-28 on macOS) due to a switch
posix_spawnand not setting proper sigmask on child processes. - Add TypeProf support.
- Add Ansible support.
- Disable
lsp-steep-use-bundlerby default. - Add idris2-lsp
- Add emmet-ls
- Support all
initializationOptionsintypescript-language-server - Update rust-analyzer's inlay hint protocol support.
- Add support for \~typescript-language-server\~’s inlay hints.
- Add support for
workspace/willRenameFilesandworkspace/didRenameFiles. - Improve project root import to read specific keys instead of any events.
- Support
labelDetailsof LSP Specification 3.17 - Add Gleam support
- Drop deprecated rust-analyzer variable lsp-rust-analyzer-import-merge-behaviour
- Added run and debug code lenses to
lsp-kotlin - Add setting UPDATEEXPECT=1 when running `expect!`
tests
lsp-rust - Add
lsp-use-workspace-root-for-server-default-directory. - Add marksman support.
lsp-find-referencesto include declaration by default (configurable withlsp-references-exclude-definition)- Add syntaxtree support for Ruby code.
lsp-organize-importsno longer prompts for an action, even iflsp-auto-execute-actionis nil.- Add mint-lang support.
- Add
lsp-sorbet-as-add-onvariable to allow running the Sorbet server as an add-on alongside Solargraph or others - Add dot-language-server (a.k.a. Graphviz) support.
- Add PLS support (additional sever for Perl).
- Fix
lsp-avy-lenswhenavy-styleis'de-bruijnor'words#3554 - Fix
lsp-avy-lenswhenlsp-lens-place-positionposition isend-of-line - Add
lsp-clojure-trace-enablevariable. - Add some support for rust-analyzer semantic token modifiers. Highlights mutable and reference variables.
- Update version for
lsp-xmlto 0.21.0, adding custom variables for new formatting options. - Changes variable
lsp-xml-validation-schemato be an alist rather than a boolean. - Adds
lsp-xml-preferences-quote-styleas a replacement for obsoletelsp-xml-format-quotes. - Add nil support (additional server for Nix)
- Add Volar 1.0
support, refactor vue-language-server
initializationOptions, and remove multi server that is no longer needed. - Ensure that incomplete completions only trigger when retriggering from the same completion session #3028
lsp-kotlinnow supportskotlin-ts-modelsp-elixirnow supportselixir-ts-modeandheex-ts-mode- Update Magik
- Add
lsp-clients-typescript-prefer-use-project-ts-servercustom variable to try to use the project's tsserver.js instead of the one installed by lsp-mode. - Add ruff-lsp support (additional server for Python).
- Update documentation of Vue3 install server
- Add GLSL support.
- Move inlay hint support in core from
lsp-rustandlsp-javascript. Uselsp-inlay-hint-enableinstead oflsp-rust-analyzer-server-display-inlay-hintsandlsp-javascript-server-display-inlay-hints - Add ShaderLab support.
- Remove custom variable
lsp-inlay-hint-enum-formatsince LSP Specification 3.17 only hastypeandparameterhint kinds. - Add Semgrep support
- Add AWK language server support.
- Add support for
scala-ts-mode. - Drop support for emacs 26.3
- Add [https://github.com/rubocop/rubocop][RuboCop built-in language server]] for linting and formatting Ruby code.
- Add Move language server support.
- Add mdx support using mdx-language-server
- Add golangci-lint add-on client using golangci-lint-langserver
- Add buf/protobuf support via bufls
- Add Assembly Language support.
- Add Autotools support
- Add Jsonnet support
- Add support for
ada-ts-mode. - Allow customizing Ada semantic token and token modifier faces.
- Add Hylang support.
- Add support for clojure-ts derived modes.
- Add support for installing Ada Language Server.
- Add Nushell support
- Add Trunk support
- Add Cucumber support.
- Add COBOL support.
- Add Common Lisp support.
- Add YANG support using TypeFox/yang-lsp Server.
- Add Postgres langauge server support.
Release 8.0.0#
- Add
lsp-clients-angular-node-get-prefix-commandto get the Angular server from another location which is still has/lib/node_modulesin it. - Set
lsp-clients-angular-language-server-commandafter the first connection to speed up subsequent connections. - Add
lsp-sql-execute-paragraphto execute the current paragraph (likesql-send-paragraph). - Breaking change: bindings for commands under
s(likelsp-workspace-shutdown) were moved underwfor better compatibility withSpacemacs - removed
lsp-print-performance - Add support for insert/replace when performing completion. When
using
companypressingC-u RETwill perform the alternative action (the default is replace, but can be changed). - Add
lsp-after-apply-edits-hookthat run after every workspace edit is applied. - Safe renamed
lsp-diagnosetolsp-doctor. - Add
lsp-modeline-code-actions-segmentsfor a better customization. - Add Lua Language Server, Lua-LSP and improve EmmyLua.
- Add configuration settings for elixir-ls.
- Add Nix support.
- Add Racket support.
- Provided automatic installers for `lsp-clojure` (`clojure-lsp`).
- Provided automatic installers for clangd.
- Added
lsp-modeline-workspace-status-modeand option to disable it vialsp-modeline-workspace-status-enable. - Automatically download XML language server Lemminx
- Add Vala support.
- Add Sorbet Language Server for typechecking Ruby code.
- Add Elixir test lenses support.
- Enable headerline breadcrumb by default
- Add Steep Language Server for typechecking Ruby code.
- Rename semantic highlighting -> semantic tokens.
- Add Phpactor Language server
- Add
lsp-headerline-breadcrumb-icons-enableto disable breadcrumb icons. - Add ActionScript support.
- Add
ieditintegration (documentHighlights) - Add an interactive
lsp-clangd-find-other-filemethod that uses the clangd extension to return the corresponding header/cpp file from cpp/header file respectively. - Add support for Deno language server.
- Add
lsp-dired-mode- integration between dired andlsp-mode - Add Grammarly support.
- Add D support.
- Add Zig support.
- Add an interactive
lsp-rust-analyzer-reload-workspacefunction that reloads the Rust-Analyzer workspace from Cargo.toml - Rename
lsp-rust-analyzer-cargo-load-out-dirs-from-checktolsp-rust-analyzer-cargo-run-build-scriptsto align with upstream. - Allow customization of
lsp-file-watch-ignored-directoriesandlsp-file-watch-ignored-filesat the root of an lsp workspace. - Add client for markdown language server (called unified-language-server)
- Add client for SystemVerilog language server (called https://github.com/imc-trading/svlangserver)
- Add client for python-lsp-server, pylsp (https://github.com/python-lsp/python-lsp-server)
- Deprecate the Palantir Python language server, pyls.
- Add 2 rust-analyzer LSP extension function
lsp-rust-analyzer-related-testsandlsp-rust-analyzer-open-cargo-toml - Work around bug in NPM versions 7.0.0 through 7.4.1 that prevented
lsp-install-serverfrom working for NPM-based language servers. - Add
lsp-lens-place-positionwith option to place code lens at end of line as default. - Add LanguageTool support.
- Add Beancount support.
- Add Nix language server support.
- Update the ESLint server to 2.1.23
- Add
lsp-eslint-warn-on-ignored-filesandlsp-eslint-rules-customizationsoptions to the ESLint client - Change interface for configuring ESLint code actions - see
documentation of
lsp-eslint-code-action-disable-rule-commentandlsp-eslint-code-action-show-documentationfor details - Add interactive
lsp-rust-analyzer-move-item-upandlsp-rust-analyzer-move-item-downfunctions to move Rust items / statements - Fix memory leak when handling server response. #3062
- Improve support for SemanticTokens adding support for delta and range semantic tokens.
- Allow override specific semantic tokens faces per client.
- Mention new lsp-mode integration package
consult-lsp. - Reorganized lsp-mode code moving features and clients to separated files. #2067
- Add support for signatureHelp using
posframe. #1999 - Add
ieditintegration. #2478 - Add client for Verible SystemVerilog language Server (https://github.com/chipsalliance/verible)
- Add support for per-project Beancount initialization-options
Release 7.0.1#
- Introduced
lsp-diagnostics-mode. - Safe renamed
lsp-flycheck-default-level->lsp-diagnostics-flycheck-default-level - Safe renamed
lsp-diagnostic-package->lsp-diagnostics-provider - Dropped support for
company-lsp, the suggested provider iscompany-capf. - Moved completion features to
lsp-completion.el - Safe renamed
lsp-prefer-capf->lsp-completion-provider - Safe renamed
lsp-enable-completion-at-point->lsp-completion-enable
Release 7.0#
- Support for new language server - Shttps://github.com/lighttiger2505/sqls (thanks to @v2okimochi)
- Provided automatic installers for elp/css/bash/purescript(thanks to @kiennq)
- Configurable Rust Analyzer inlay face via
lsp-rust-analyzer-inlay-face. - Add
lsp-headerline-breadcrumb-modewhich shows a breadcrumb with the document symbols on headerline when enabled. - Add
lsp-modeline-code-actions-modewhich shows code actions on modeline when enabled. - Support for Theia-based semantic highlighting has been removed in
favor of the semanticTokens protocol specified by LSP 3.16. To
enable it, set
lsp-enable-semantic-highlightingtot. lsp-metalsmoved into a separate repo https://github.com/emacs-lsp/lsp-metals- Breaking change: use alist instead of hast-tables for
lsp-gopls-envandlsp-yaml-schemas. - Add
lsp-gopls-codelensdefcustom to configure codelenses used for golang. - Added
lsp-diagnoseto help users verify their performance related settings - Created new website https://emacs-lsp.github.io/lsp-mode/ (thanks to @ericdallo)
- Implemented special handling of Clangd echo area.
- Added setting to disable additional text edits
(
lsp-completion-enable-additional-text-edit). - Added setting to disable text detail
(
lsplsp-completion-show-detail). - Add serenata language server support (thanks to @Sasanidas)
- Various capf improments - better handling of partial results, support for try-completions, improved responsibility, optimized filtering/sorting, etc.
- Remove Elixir JakeBecker support (no longer supported)
- Support semantic tokens protocol (thanks to @sebastiansturm)
- Improved flycheck integration for better performance.
- Implemented client side bindings for the protocol.
FixupIgnore timeouts fromwillSaveWaitUntil- Implemented org-mode support (see https://github.com/emacs-lsp/lsp-mode/blob/master/docs/page/lsp-org.md)
- Removed support for Theia semantic highlighting protocol
- Performed several fixes to make sure lsp-mode is working fine with Emacs 28 native compilation.
- Add modeline code actions support (thanks to @ericdallo). Enabled by
default, use
lsp-modeline-code-actions-enableto disable it. - Migrated to github actions from travis.
- Add breadcrumb on headerline (thanks to @ericdallo). Disabled by
default, can be enabled via
lsp-headerline-breadcrumb-enable - Migrated lsp-mode to use plists(thanks to @yyoncho, @kiennq and @ericdallo).
- lsp-diagnostics-modeline: perf improvement (thanks to @kiennq)
Release 6.3#
- Implemented
company-capfintegration.company-lspis no longer supported. - Dropped support for dart language server in favour of dart SDK(breaking)
- Added verilog support for LSP using hdl-checker
- Implemented call hierarchy support (available in
lsp-treemacs) - Implemented support for ESLint language server.
- ocmalmerlin-lsp moved to ocaml-lsp-server(breaking)
- Added New VHDL language server https://github.com/kraigher/rust_hdl#configuration
- Add Nim language server integration
- Implement automatic downloading facilities and implemented
auto-download for
typescript-language-server,javascript-typescript-stdioandjson-language-server. - Implement metals decoration protocol
- Send metals/didFocusTextDocument notification on buffer change
- Add default keybindings and
which-keyintegration - Add support for Dhall language server
- Implemented debug adapter protocol support for metals
- Add CMake language server integration
- Add rust-analyzer runnables support
- Implemented rust-analyzer inlay hints
- Support pyenv for pyls
- Add clang-tidy specific Flycheck error explainer for the lsp checker
- Improve lsp-mode completion performance by suppressing non completion related features when completion is active.
- lsp-json: Enable formatter provider
- Accommodate the new :end-column and :end-column from flycheck
- Implement status bar for diagnostics
lsp-diagnostics-modeline-mode - Auto install of the
html-language-server - Flycheck support for diagnostic tags (3.15 spec).
- Adding support for GDScript language server
- used view mode for metals doctor buffer
- add texlab as tex LSP server
- Started new set of integration tests without using ecukes
- Support "only" param when requesting code actions
- Add Perl-LanguageServer support
- add support robot-framework language server.
- Implement deferred semantic highlighting
- Change default transport for erlangls to stdio
- dart language server moved into separate repo https://github.com/emacs-lsp/lsp-dart
- Activate flow language server if there is flow tag in file or .flowconfig in project
- Add purescript-language-server (#1596)
- Process the $/progress messages from LSP 3.15
- Display the first line of MarkupContent in eldoc (#1607)
- Perform willSaveWaitUntil synchronously and with shorter timeout
- Display images when rendering markdown(useful for latex language servers).
- Increase
lsp-idle-delayto 0.5 - Support bash language server glob pattern option (#1594)
- Use pagebreaks for
lsp-describe-thing-at-point - lsp-mode: Eliminate quadratic-time index-building for imenu. (#1616)
Release 6.2#
- Support dynamic rename registration
- Add basic support for style semantic highlighting
- Added Haxe language server integration
- Add C#-support via Roslyn.
- Add emmy lua support
- Enable plugins in typescript language server.
- 1079 Provide support for Ada Language server
- Implement right click support in
lsp-modebuffers. - Added built-in support for
Rust Analyzer. - Added support for HDL Checker server to lsp-vhdl
- Added support for Terraform language server.
- Added support for R language server (#1182)
- Added support for passing environment variables to language servers (#1184)
- Speedup lsp-mode's JSONRPC processing (\~2 times)
- Add cancel-token to lsp-request-async
- Implement unified way to handle recurring lsp features
- Added support for powershell language server.
- Implemented inlay hints for
Rust Analyzer(thanks tobrotzeit). - Implemented automatic installation for C# language server.
- Reimplemented
textDocument/signatureHelp- now the signature is displayed inlvbuffer. - Cancel sync requests when presssing
C-gduring the request. - Use
c-basic-offsetwhen incc-mode. - Add support for Crystal via scry (#1218).
- Implement
textDocument/documentColorsupport.
Release 6.1#
Support for new languages/language servers:#
- Kotlin Language Server (Thanks to Jon Carr)
- gopls Language Server for Go
- XML Language Server (lsp4xml)
- Hack (using HHVM)
- Intelephense for PHP
- clojure-lsp for Clojure/ClojureScipt (Thanks to Dario Benedek Fazekas)
- elmLS for Elm (Thanks to Daniel-V)
- FsAutoComplete for F# (Thanks to Reed Mullanix)
- Added
Erlangsupport via erlangls - Added
Dockerfilesupport via dockerfile-language-server-nodejs
New logging options#
lsp-modenow logs to buffer*lsp-log*, instead of*Messages*. This can be controlled with the variablelsp-log-max(Thanks to Thomas Fini Hansen).- If
lsp-print-performanceis non-nil,lsp-modewill log a corresponding performance trace to*lsp-log*for every message to and from the server. - The variable
lsp-print-io, when non-nil will causelsp-modeto log all messages to and from the server to a unique*lsp-io*buffer for every project root. These logs can be saved to a file and viewed using the LSP Inspector.
LSP Methods#
- Add support for textDocument/prepareRename. If supported by the language server, all renaming operations will be tested for validity.
- Add support for file watches.
- Add support for CodeAction literals.
- Add API level support for folding ranges. Folding support for origami.el support is implemented by package lsp-origami.
- Support document
links.
This can be controlled using the variable
lsp-enable-links. - Support resource operations (edits sent from the language server can now create/modify/remove files and directories).
- Add support for workspace/configuration.
- Add new function
lsp-disconnect. - Added
lsp-find-definition-mouseand bound toC-<down-mouse-1> - Added
lsp-extend-selectionas a frontend of new LSP methodtextDocument/extendSelection
Other changes#
- Add project logo (thanks to Jon Carr).
- Created an integration test suite for
lsp-mode(See directoryfeatures). - If available, using the native JSON API introduced in Emacs 27.1.
- Tramp implementation now uses TRAMP process instead of TCP sockets (Thanks to Karsten Patzwaldt).
- LSP autoconfiguration adds
company-lspto the list of company backends instead of overriding it. - Add
lsp-mode-map. - Add menu bar entries for
lsp-mode. - Perform before save operations (textDocument/willSaveWaitUntil) asynchronously.
imenusupport is now handled asynchronously (Thanks to Dario Gjorgjevski).- Added option
:noneforlsp-prefer-flymake, which disabled both Flymake and Flycheck support. - Changed
flymaketo report the errors immediately after they arrive instead of waitingflymaketo calllsp-mode. - Add debounce when server does not support incremental updates.
- Add hook
lsp-after-uninitialized-hook, which stores the list of functions called after a language server has been uninitialized. - Add variable
lsp-symbol-highlighting-skip-current, which lets the user skip the current symbol when a given symbol is being highlighted. - Add variable
lsp-enabled-clients, which lets users set which defined clients are allowed to be used. - Support multiple signatures while displaying eldoc text. Add
variable
lsp-signature-render-all, which when non-nil forceslsp-modeto only show the current active signature. - Expose configuration settings for various language servers.
- Language servers can now be disabled with the variable
lsp-disabled-clients. - Improved applying changes speed.
- Fixed
xrefsupport for emacs 27+ - Implemented automatic installation for F# language server.
- Added Emacs 26.x to CI
- Fixed handling of stderr when running over
TRAMP. - Implemented support for running the language server in
Dockercontainer over local files.
Release 6.0#
lsp-modenow have single entry pointlspfor all language and based on the major mode starts the corresponding language servers.- Added
flymakeintegration. lspautomatically enables and configurescompany-lsp,lsp-ui,yasnippet, orflymakeif they are present so no additional configuration is needed except installing the packages. That behavior could be disabled by settinglsp-auto-configuretonil.lsp-modeships with several predefined servers located inlsp-clients.elwhich does not require additional package. For the more complex Language Servers likeEclipse JDT,ccls,cqueryandhaskellwe still require separate package due to relatively high code base.lsp-modehandles automatically server failures by asking the user whether he/she wants to restart the server.- introduced new command
lsp-describe-sessionwhich replaces the existing onelsp-capabilities. The command lists the folders that are part of the workspace and the servers that are associated with the corresponding folder. lsp-modedisplays information about the running server and it's status in the modeline.lsp-define-stdio-clientandlsp-define-tcp-clientare replaced withlsp-register-clientlsprely onprojectileorproject.elnow only for suggesting project root. Once you open new file in a project and startlspit will provide several options(import project, blocklist project, select other directory root). Once you select a root it will be persisted and used for the next sessions.- support for multiple language servers per single file and workspace.
- changed
lsp-modesettings to more sensible defaults. - Removed all synchronous calls from the server startup.
- Improved multi-folder support.
- added backends for: Bash, C++, CSS, Dart, Elixir, Fortran, Go, Groovy, HTML, Javascript/Typescript, Javascript/Typescript, Ocaml, PHP, Python, Ruby, Rust, Vue, Flow
Last update:
November 12, 2025