mirror of
https://github.com/tiennm99/serena.git
synced 2026-10-13 04:15:11 +00:00
Improve prerequisistes and language support docs
This commit is contained in:
1 parent
9dbbfe60b8
commit
185c3b2065
2 files changed
+59
-32
No files matched your search
@@ -1,4 +1,4 @@
|
||||
## Programming Language Support & Semantic Analysis Capabilities
|
||||
## Language Support
|
||||
|
||||
Serena's semantic code analysis capabilities build on **language servers** using the widely implemented
|
||||
language server protocol (LSP). The LSP provides a set of versatile code querying
|
||||
@@ -12,34 +12,53 @@ than existing solutions that charge a premium.
|
||||
Language servers provide support for a wide range of programming languages.
|
||||
With Serena, we provide direct, out-of-the-box support for:
|
||||
|
||||
* Python
|
||||
* TypeScript/Javascript
|
||||
* PHP (uses Intelephense LSP; set `INTELEPHENSE_LICENSE_KEY` environment variable for premium features)
|
||||
* Go (requires installation of gopls)
|
||||
* R (requires installation of the `languageserver` R package)
|
||||
* Rust (requires [rustup](https://rustup.rs/) - uses rust-analyzer from your toolchain)
|
||||
* C/C++ (you may experience issues with finding references, we are working on it)
|
||||
* Zig (requires installation of ZLS - Zig Language Server)
|
||||
* C#
|
||||
* Ruby (by default, uses [ruby-lsp](https://github.com/Shopify/ruby-lsp), specify ruby_solargraph as your language to use the previous solargraph based implementation)
|
||||
* Swift
|
||||
* Kotlin (uses the pre-alpha [official kotlin LS](https://github.com/Kotlin/kotlin-lsp), some issues may appear)
|
||||
* Java (_Note_: startup is slow, initial startup especially so. There may be issues with java on macos and linux, we are working on it.)
|
||||
* Clojure
|
||||
* Dart
|
||||
* Bash
|
||||
* Lua (automatically downloads lua-language-server if not installed)
|
||||
* Nix (requires nixd installation)
|
||||
* Elixir (requires installation of NextLS and Elixir; **Windows not supported**)
|
||||
* Elm (automatically downloads elm-language-server if not installed; requires Elm compiler)
|
||||
* Scala (requires some [manual setup](docs/scala_setup_guide_for_serena.md); uses Metals LSP)
|
||||
* Erlang (requires installation of beam and [erlang_ls](https://github.com/erlang-ls/erlang_ls), experimental, might be slow or hang)
|
||||
* Perl (requires installation of Perl::LanguageServer)
|
||||
* Fortran (requires installation of fortls: `pip install fortls`)
|
||||
* Haskell (automatically locates HLS via ghcup, stack, or system PATH; supports Stack and Cabal projects)
|
||||
* Julia
|
||||
* AL
|
||||
* Markdown (must be explicitly specified via `--language markdown` when generating project config, primarily useful for documentation-heavy projects)
|
||||
* **AL**
|
||||
* **Bash**
|
||||
* **C#**
|
||||
* **C/C++**
|
||||
(you may experience issues with finding references, we are working on it)
|
||||
* **Clojure**
|
||||
* **Dart**
|
||||
* **Elixir**
|
||||
(requires installation of NextLS and Elixir; Windows not supported)
|
||||
* **Elm**
|
||||
(requires Elm compiler)
|
||||
* **Erlang**
|
||||
(requires installation of beam and [erlang_ls](https://github.com/erlang-ls/erlang_ls), experimental, might be slow or hang)
|
||||
* **Fortran**
|
||||
(requires installation of fortls: `pip install fortls`)
|
||||
* **Go**
|
||||
(requires installation of `gopls`)
|
||||
* **Haskell**
|
||||
(automatically locates HLS via ghcup, stack, or system PATH; supports Stack and Cabal projects)
|
||||
* **Java**
|
||||
(_Note_: Uses quirky symbol names for methods that include the full method signature; this causes a variety of problems!)
|
||||
* **Javascript**
|
||||
* **Julia**
|
||||
* **Kotlin**
|
||||
(uses the pre-alpha [official kotlin LS](https://github.com/Kotlin/kotlin-lsp), some issues may appear)
|
||||
* **Lua**
|
||||
* **Markdown**
|
||||
(must be explicitly specified via `--language markdown` when generating project config, primarily useful for documentation-heavy projects)
|
||||
* **Nix**
|
||||
(requires nixd installation)
|
||||
* **Perl**
|
||||
(requires installation of Perl::LanguageServer)
|
||||
* **PHP**
|
||||
(uses Intelephense LSP; set `INTELEPHENSE_LICENSE_KEY` environment variable for premium features)
|
||||
* **Python**
|
||||
* **R**
|
||||
(requires installation of the `languageserver` R package)
|
||||
* **Ruby**
|
||||
(by default, uses [ruby-lsp](https://github.com/Shopify/ruby-lsp), specify ruby_solargraph as your language to use the previous solargraph based implementation)
|
||||
* **Rust**
|
||||
(requires [rustup](https://rustup.rs/) - uses rust-analyzer from your toolchain)
|
||||
* **Scala**
|
||||
(requires some [manual setup](../03-special-guides/scala_setup_guide_for_serena); uses Metals LSP)
|
||||
* **Swift**
|
||||
* **TypeScript**
|
||||
* **Zig**
|
||||
(requires installation of ZLS - Zig Language Server)
|
||||
|
||||
Support for further languages can easily be added by providing a shallow adapter for a new language server implementation,
|
||||
see Serena's [memory on that](.serena/memories/adding_new_language_support_guide.md).
|
||||
@@ -1,4 +1,12 @@
|
||||
## Install uv
|
||||
## Prerequisites
|
||||
|
||||
Serena is managed by `uv`, and the only prerequesite for using Serena is to have `uv` installed.
|
||||
To install it, follow the instructions [here](https://docs.astral.sh/uv/getting-started/installation/).
|
||||
### uv
|
||||
|
||||
Serena is managed by `uv`.
|
||||
If you do not have it yet, install it following the instructions [here](https://docs.astral.sh/uv/getting-started/installation/).
|
||||
|
||||
### Language-Specific Requirements
|
||||
|
||||
Depending on the programming language you intend to use with Serena, you may need to install additional tools or SDKs if you
|
||||
intend to use the language server backend of Serena.
|
||||
See the [language support documentation](../01-about/020_programming-languages) for details.
|
||||
Reference in new issue
Block a user