199 lines
3.3 KiB
Markdown
199 lines
3.3 KiB
Markdown
# 🎨 Darcula Neovim
|
|
|
|
<p align="center">
|
|
A modern, cross-platform Neovim distribution for <strong>C/C++</strong>, <strong>Lua</strong>, and everyday development.
|
|
</p>
|
|
|
|
<p align="center">
|
|
|
|

|
|

|
|

|
|

|
|
|
|
</p>
|
|
|
|
---
|
|
|
|
## ✨ Highlights
|
|
|
|
- 🚀 Two complete editor environments
|
|
- **COC** (`viml.sh`)
|
|
- **Native LSP** (`viml2.sh`)
|
|
- 🐳 Fully reproducible Docker environments
|
|
- ⚡ Fast startup and modern UI
|
|
- 🌲 Tree-sitter syntax highlighting
|
|
- 🔭 Telescope fuzzy finder
|
|
- 🛠️ Clangd and Lua development
|
|
- 💾 Persistent editor state
|
|
- 🌎 Linux, macOS, and Windows support
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Local (COC)
|
|
|
|
```bash
|
|
./viml.sh .
|
|
```
|
|
|
|
### Local (Native LSP)
|
|
|
|
```bash
|
|
./viml2.sh .
|
|
```
|
|
|
|
### Docker (COC)
|
|
|
|
```bash
|
|
./build_nvim.sh
|
|
./dviml.sh .
|
|
```
|
|
|
|
### Docker (Native LSP)
|
|
|
|
```bash
|
|
./build_nvim2.sh
|
|
./dviml2.sh .
|
|
```
|
|
|
|
---
|
|
|
|
## 📂 Repository Scripts
|
|
|
|
| Script | Description |
|
|
|--------|-------------|
|
|
| `viml.sh` | Launch local COC configuration |
|
|
| `viml2.sh` | Launch local Native LSP configuration |
|
|
| `dviml.sh` | Launch Docker COC configuration |
|
|
| `dviml2.sh` | Launch Docker Native LSP configuration |
|
|
| `build_nvim.sh` | Build Docker COC image |
|
|
| `build_nvim2.sh` | Build Docker Native LSP image |
|
|
| `build_all.sh` | Build both Docker images |
|
|
|
|
---
|
|
|
|
## 🎯 Which Configuration?
|
|
|
|
### 🚀 COC
|
|
|
|
Best if you want:
|
|
|
|
- Rich completion
|
|
- Mature plugin ecosystem
|
|
- Extensive language support
|
|
- IDE-like experience
|
|
|
|
### ⚡ Native LSP
|
|
|
|
Best if you prefer:
|
|
|
|
- Pure Neovim
|
|
- Built-in LSP
|
|
- Lower memory usage
|
|
- Faster startup
|
|
- Minimal configuration
|
|
|
|
---
|
|
|
|
## 💻 Local Development
|
|
|
|
All launcher arguments are forwarded directly to Neovim.
|
|
|
|
Examples:
|
|
|
|
```bash
|
|
./viml.sh .
|
|
./viml.sh src/main.cpp
|
|
./viml.sh +150 src/main.cpp
|
|
./viml.sh -p file1.cpp file2.cpp
|
|
```
|
|
|
|
The same options work with `viml2.sh`.
|
|
|
|
---
|
|
|
|
## 🐳 Docker Development
|
|
|
|
Build once:
|
|
|
|
```bash
|
|
./build_nvim.sh
|
|
```
|
|
|
|
Launch:
|
|
|
|
```bash
|
|
./dviml.sh .
|
|
```
|
|
|
|
Or use the native LSP environment:
|
|
|
|
```bash
|
|
./build_nvim2.sh
|
|
./dviml2.sh .
|
|
```
|
|
|
|
> **Note:** `build_all.sh` builds both images and may remove unused Docker resources beforehand.
|
|
|
|
---
|
|
|
|
## ⚖️ Local vs Docker
|
|
|
|
| Local | Docker |
|
|
|------|------|
|
|
| ⚡ Fastest startup | 🔒 Fully isolated |
|
|
| 🖥️ Uses host toolchain | 📦 Reproducible environment |
|
|
| 💾 Native filesystem | 🧪 Great for testing |
|
|
| 🚀 Daily development | 🔄 Consistent across machines |
|
|
|
|
---
|
|
|
|
## 💾 Persistent Docker Data
|
|
|
|
Docker containers are disposable, but your editor state is not.
|
|
|
|
The Docker launchers preserve:
|
|
|
|
- Plugin installations
|
|
- Cache
|
|
- Undo history
|
|
- ShaDa history
|
|
- Swap files
|
|
|
|
Each environment maintains its own independent data directory.
|
|
|
|
---
|
|
|
|
## 📋 Requirements
|
|
|
|
### 🖥️ Local
|
|
|
|
- Git
|
|
- Supported shell
|
|
- Linux, macOS, or Windows
|
|
|
|
### 🐳 Docker
|
|
|
|
- Docker Engine
|
|
|
|
---
|
|
|
|
## 🤝 Contributing
|
|
|
|
Issues, feature requests, and pull requests are welcome.
|
|
|
|
If you encounter a bug, please include:
|
|
|
|
- Operating system
|
|
- Neovim version
|
|
- Launcher used (`viml`, `viml2`, `dviml`, or `dviml2`)
|
|
- Steps to reproduce
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
Released under the **MIT License**.
|