Path Server is an extremely fast and lightweight Language Server Protocol (LSP) server written in Rust, acting as a lightweight and cross-editor replacement for Path Intellisense.
Path Server automatically highlights valid file paths in the editor, provides completion suggestions for both relative and absolute paths, and allows users to jump to the paths in the editor.
It's currently compatible with VS Code and Zed (awaiting official review from Zed team) officially, and can be easily ported to any editors that implement the LSP protocol (e.g., Neovim). We are welcome to issues or contributions about your favorite editors.
- Path Completion: Provides real-time suggestions for both relative and absolute paths.
- Path highlight and jump: Automatically detects and underlines valid file paths in the editor, making them clickable for direct navigation.
- Highly Customizable: Offers various configuration options to tailor the behavior to your needs, such as setting base paths for completion, excluding paths with specific patterns, and more.
- Fast and Lightweight: Native-level response speed. Consumes only ~10MB memory with very low CPU usage.
- Language Compatibility: Supports all text files, regardless of programming languages.
- Cross IDEs: Works seamlessly with any editors that support the Language Server Protocol (e.g., VS Code, Zed, Neovim).
You can integrate Path Server into your editor by installing the extension.
The official Path Server extension is available in VS Code extensions marketplace. You can search Path Server and install it in the VS Code extensions page.
If you are using an open source version of VSCode, you might need to install the extension manually.
- Navigate to the latest release and download the
.vsixfile compatible with your system. - Copy the file to your
.vscode/extensionsdirectory. - Install via the command line
code --install-extension /path/to/path-server_vscode_*.vsix
If you prefer to build the binary yourself, you'll need Rust installed.
- Build the Path Server binary.
Path Server defaults to single-threaded mode for minimal resource usage. If you prefer to build with multi-threading support, enable multi-threading with the
cargo build --release
multi-threadfeature flag:cargo build --release --features multi-thread
- Package VS Code Extension (
.vsix).cd extensions/vscode npm install npm run build - Install
.vsixfile manually. The packaged.vsixfile will be output to thedist/directory. You can install it manually via:code --install-extension path-server_vscode_*.vsix
You can call Path Server commands via the Command Palette (Cmd/Ctrl + Shift + P):
Path Server: Restart Server: Restart the Path Server language server.Path Server: Open Configuration: Open the Path Server configuration in a new tab.
Search for Path Server in the Zed extensions catalog and click install.
Note: Zed does not support package extension manually for now.
Note: Document Links (path underline highlight) is not yet supported in Zed as it does not implement the LSP Document Link feature.
Path Server support custom configuration via LSP workspace configuration. You can customize Path Server's behavior through your editor.
| Property | Type | Default | Description |
|---|---|---|---|
path-server.basePath |
Array | [ "${document}", "${workspaceFolder}"] |
Base paths for relative path completion, highlight and jump. You can use ${workspaceFolder}, ${document}, and ${userHome} as placeholders. The order determines the priority in suggestions. |
path-server.completion.maxResults |
Number | 0 |
Max results shown in completion. 0 indicates no limit. |
path-server.completion.showHiddenFiles |
Boolean | true |
Whether to show hidden files in completion. |
path-server.completion.exclude |
Array | ["**/node_modules", "**/.git", "**/.DS_Store"] |
List of paths to exclude from completion. Supports glob patterns. |
path-server.completion.triggerNextCompletion |
Boolean | true |
Whether to automatically trigger the next completion after selecting a path. |
path-server.highlight.enable |
Boolean | true |
Whether to highlight paths in the editor with underlines. |
path-server.highlight.highlightDirectory |
Boolean | true |
Whether to highlight directory paths. (Jump behavior may vary by editor/OS). |
Open Settings and search for path-server, or run the command Path Server: Open Configuration to open customizable options in a new tab.
Run zed: open settings file from the command palette to edit user settings json file. And append path server settings below it. For example:
{
"lsp": {
"path-server": {
"settings": {
"basePath": ["${workspaceFolder}", "${document}"],
"completion": {
"triggerNextCompletion": true
},
"highlight": {
"enable": true,
"highlightDirectory": true
}
}
}
}
}| Platform | x86_64 | Aarch64 |
|---|---|---|
| Windows | Build & Test | Build Only |
| Linux | Build & Test | Build Only |
| macOS | Build Only | Build & Test |
- Support relative and absolute path completion.
- Support customizable configurations.
- Automatically trigger next completion.
- Implement "Go to Definition" for file paths.
- Support path highlight.
- Support remote window.
- Improve path extraction precision.
- Zed: Support all language by use "wildcard" in extension.toml (Waiting for Zed extension api support)
If you use VS Code, you can open this repository with the provided workspace file:
code .vscode/path-server.code-workspaceThis workspace is pre-configured with multi-root folders and debug task settings.
The Path Server project is organized in mono-repository structure with core LSP server implementation and extensions for different editors.
- The core LSP server implementation and tests are located in the repository root.
- The Zed Extension is located in
./extensions/zed. - The VS Code is located in
./extensions/vscode.
The core logic is written in Rust (./src/main.rs).
- Build:
cargo build
- Test:
cargo test - Lint:
cargo fmt --all -- --check cargo clippy -- -D warnings
- Format:
cargo fix --allow-dirty cargo clippy --fix --allow-dirty
- Audit dependencies:
cargo audit
Zed extensions are compiled to WASM.
- Install Dev Extension:
Open Zed and run command zed: install dev extension. Select the zed folder. - View Logs:
Open logs to debug LSP communication.
The VS Code extension acts as a client that launches the Rust binary.
-
Setup:
npm install
-
Debug:
PressF5orrun Debug: Select and Start Debugging -> Run Extension.This will build the language server automatically and launch a "Extension Development Host" window.
-
View Logs: The server logs will be redirect to
Output panel->Path Server Language Server
Distributed under the terms of the Apache 2.0 license.

