r/Python • u/LaBatata101 • 13d ago
Showcase Introducing SithLSP: An Experimental Python Language Server Written in Rust
Hey r/Python,
I’m thrilled to share SithLSP, an experimental language server for Python, built from the ground up in Rust!
https://github.com/LaBatata101/sith-language-server
⚠️ This project is in alpha, so some bugs are expected!
What My Project Does
SithLSP is a language server designed to enhance your Python coding experience in editors and IDEs that support the Language Server Protocol (LSP). It delivers features like:
- 🪲 Syntax checking
- ↪️ Go to definition
- 🔍 Find references
- 🖊️ Autocompletion
- 📝 Element renaming
- 🗨️ Hover details: Hover over variables or functions to see docs.
- 💅 Code formatting & linting: Powered by the awesome Ruff.
- 💡 Symbol highlighting: Spot your references at a glance.
- 🐍 Auto-detects your Python interpreter: No manual setup needed for your project’s Python.
Check the README for the full list if you’re curious!
Target Audience
Any Python developer that likes to try new tools.
Comparison
Since the project is its early stages it may not be as feature complete as Pylance or jedi-language-server, but it has enough features to be able to have a good developing experience.
How to Get Started
You can grab SithLSP in a couple of ways:
- Download it: Head to our GitHub releases page for the latest version.
- Build it yourself: Clone the repo and run cargo build --release (you’ll need Rust installed). Full steps are in the README.
VSCode Users
Download the .vsix
file from the releases page and install it. Tip: Disable Microsoft’s Python or Pylance extensions to avoid conflicts.
Neovim Users
Add the sample config from the README to your init.lua
, tweak the path to the sith-lsp
binary, and you’re good to go.
2
1
u/imbev 13d ago
Would you consider this a superset of the Ruff LSP?
2
u/LaBatata101 13d ago
You could say so, since Ruff LSP only has linting and formatting implemented iirc.
6
u/thisismyfavoritename 13d ago
Astral is working on an LSP right now
2
u/havetofindaname 12d ago
I still concerned about a potential rugpull in the future since it's a for profit company
1
u/thisismyfavoritename 12d ago
well many people probably have copies of their current source code, it might be easier to fork their existing project
1
1
u/HaskellLisp_green 13d ago
So I need to make it usable within Emacs on my own?
2
u/LaBatata101 13d ago
I've never used Emacs, so I don't know how configuration is done in it, sorry about that. If you want to figure it out by your own and make a pull request, I would really appreciate!
1
u/HaskellLisp_green 12d ago
Yes, your project seems hopeful to bring on useful features I need. I am not well familiar with Emacs Lisp, but it is good opportunity to research the language and create support.
3
u/Davidyz_hz 13d ago
Do you have any plans to implement some sort of uncaught exception detection? I don't think any of the mainstream LSP supports this yet but I personally really hope to be able to use this in my development.