From 23ea48e53fdca915ee56cd5398487bc073717f75 Mon Sep 17 00:00:00 2001 From: Nils Koch Date: Thu, 13 Nov 2025 21:20:17 +0100 Subject: [PATCH] Update README --- README.md | 71 +++++++++---------------------------------------------- 1 file changed, 11 insertions(+), 60 deletions(-) diff --git a/README.md b/README.md index 8fa414b..32c31c6 100644 --- a/README.md +++ b/README.md @@ -2,77 +2,28 @@ # jj-lsp -A Language Server Protocol (LSP) implementation for resolving conflicts in the [jj version control system](https://github.com/jj-vcs/jj). +A Language Server Protocol (LSP) implementation for resolving conflicts in the [jj-vcs](https://github.com/jj-vcs/jj). -## Overview - -jj-lsp enhances your development workflow by providing specialized editor integration for working with jj conflicts. Unlike traditional VCS tools, jj keeps conflicts as part of the codebase until they're resolved, which makes an LSP approach particularly valuable. - -## Features - -- ✅ **Conflict Detection**: Automatically identifies and highlights merge conflicts in your files -- ✅ **Code Actions**: Quickly resolve conflicts with editor actions to accept specific changes -- ✅ **Diagnostics**: Clear error messages for conflicts that need resolution -- 🔜 **Folding Ranges**: Collapse conflict sections for better readability -- 🔜 **Code Lenses**: One-click conflict resolution (similar to VSCode git integration) -- 🔜 **Hover Information**: Rich markdown representation of conflicts - -## Installation - -``` -cargo install jj-lsp -``` - -## Usage - -Configure your editor to use jj-lsp as a language server for files in jj repositories. Specific setup instructions vary by editor. +When you hit a merge conflict, `jj-lsp` highlights the problem and helps you fix it with quick actions. ## Demo -[![Demo](https://github.com/user-attachments/assets/8871e352-3c2d-44c2-b6fc-39814cfc7f2a)](https://github.com/user-attachments/assets/8871e352-3c2d-44c2-b6fc-39814cfc7f2a) - -## Editor Support +This video shows all available features: -This LSP is currently being developed with [Zed](https://zed.dev/) as the primary editor target, but should work with any LSP-compatible editor. +https://github.com/user-attachments/assets/15ec57b6-810f-4e62-b9ad-097a2564f78a -### Current Limitations - -Some planned features require LSP capabilities that may not be supported by all editors: - -- `textDocument/foldingRange` - For folding conflicts and changes -- `textDocument/codeLens` - For adding action buttons above conflicts -- `textDocument/semanticTokens` - For background coloring of changes - -### Example of Target Experience - -The goal is to provide an experience similar to VSCode's git integration: - -vscode_git_example - -## Motivation & Contributing - -I believe jj's approach to conflicts (never failing rebases, keeping conflicts as part of the code) deserves specialized tooling. This LSP aims to make working with conflicts as natural as working with any programming language. - -This project is currently in active development, and I welcome contributions: - -- File issues for bugs or feature requests -- Submit pull requests -- Reach out with feedback or suggestions via email or Discord +## Installation -## Development +### Zed Extension -```bash -# Clone the repository -git clone https://github.com/nilskch/jj-lsp.git -cd jj-lsp +You can install the `jj-lsp` via a Zed extension called [JJ Conflict Resolver](https://github.com/nilskch/zed-jj-lsp) -# Build the project -cargo build +### Cargo -# Run tests -cargo test +``` +cargo install --git https://github.com/nilskch/jj-lsp.git ``` ## License -This project is licensed under the [MIT License](LICENSE). \ No newline at end of file +This project is licensed under the [MIT License](LICENSE).