Skip to content

Commit 8b653a6

Browse files
venkatarenduchintalaVenkata Subramani Renduchintala
andauthored
docs(readme): add CI badge, prerequisites table and directory structure (#27)
Co-authored-by: Venkata Subramani Renduchintala <venkatarenduchintala@pm.me>
1 parent 5ba9365 commit 8b653a6

1 file changed

Lines changed: 57 additions & 3 deletions

File tree

README.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,34 @@
11
# Neovim configuration for SRE, Java, Python, Rust and Lua
22

3+
[![CI](https://github.com/venkatarenduchintala/nvim-config/actions/workflows/validate.yml/badge.svg)](https://github.com/venkatarenduchintala/nvim-config/actions/workflows/validate.yml)
4+
35
Personal Lua-based Neovim configuration used as a daily IDE for SRE/DevOps work and software development.
46

57
> **Disclaimer:** This configuration is based on and forked from [magidc/nvim-config](https://github.com/magidc/nvim-config). Credits to the original author for the foundational setup.
68
79
<br>
810

11+
# Prerequisites
12+
13+
| Dependency | Version | Why |
14+
|------------|---------|-----|
15+
| [Neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim) | **0.11+** | Native LSP API (`vim.lsp.config`, `after/lsp/`) |
16+
| [ripgrep](https://github.com/BurntSushi/ripgrep) | any | Telescope live grep and file search |
17+
| C compiler (`gcc` or `clang`) | any | Compiling treesitter parsers from source |
18+
| [Node.js](https://nodejs.org/) | 18+ | Required by several LSP servers installed via mason: `bashls`, `eslint`, `jsonls`, `html`, `cssls` |
19+
| [git](https://git-scm.com/) | any | lazy.nvim bootstrap and plugin installation |
20+
21+
<br>
22+
923
# Installation
1024
## Manual Setup
1125
0. Clone this repository into `~/.config/nvim`:
1226
```
1327
git clone --depth 1 https://github.com/venkatarenduchintala/nvim-config.git ~/.config/nvim
1428
```
15-
1. Install latest [Neovim](https://github.com/neovim/neovim/wiki/Installing-Neovim) (0.11+).
16-
2. Install [ripgrep](https://github.com/BurntSushi/ripgrep)required by some [Telescope](https://github.com/nvim-telescope/telescope.nvim) search modes.
17-
3. LSP servers, DAP adapters, linters and formatters are managed automatically by [mason.nvim](https://github.com/mason-org/mason.nvim) on first launch.
29+
1. Ensure all [prerequisites](#prerequisites) are installed.
30+
2. Launch Neovim[lazy.nvim](https://github.com/folke/lazy.nvim) bootstraps itself on first start and installs all plugins.
31+
3. LSP servers, DAP adapters, linters and formatters are installed automatically by [mason.nvim](https://github.com/mason-org/mason.nvim) on first launch.
1832
1933
<br>
2034
@@ -30,6 +44,46 @@ Plugin-specific mappings live in `lua/plugins/configs/`. LSP mappings are define
3044
3145
<br>
3246
47+
# Directory Structure
48+
49+
```
50+
.
51+
├── after/lsp/ # Per-server LSP settings (Neovim 0.11+ native API)
52+
│ ├── gopls.lua # Go
53+
│ ├── rust_analyzer.lua # Rust
54+
│ ├── yamlls.lua # YAML (SchemaStore + Kubernetes schemas)
55+
│ ├── helm_ls.lua # Helm
56+
│ ├── ansiblels.lua # Ansible
57+
│ ├── jsonnet_ls.lua # Jsonnet / Grafonnet
58+
│ ├── lua_ls.lua # Lua (Neovim API aware)
59+
│ └── eslint.lua # ESLint with auto-fix on save
60+
├── lua/
61+
│ ├── lsp/
62+
│ │ ├── init.lua # Global capabilities + LspAttach autocmd
63+
│ │ ├── handlers.lua # on_attach and capabilities shared across servers
64+
│ │ └── configs/ # Language-specific lifecycle plugins
65+
│ │ ├── java.lua # jdtls (own startup lifecycle)
66+
│ │ ├── rust.lua # rustaceanvim + crates.nvim
67+
│ │ ├── go.lua # nvim-dap-go (DAP only)
68+
│ │ ├── python.lua # nvim-dap-python + jupyter client
69+
│ │ ├── yaml.lua # yaml-companion (Telescope schema picker)
70+
│ │ └── dap.lua # DAP UI and adapters
71+
│ ├── plugins/
72+
│ │ ├── init.lua # Plugin list (lazy.nvim entry point)
73+
│ │ └── configs/ # Per-plugin configuration files
74+
│ ├── mappings.lua # Core key mappings
75+
│ ├── settings.lua # Neovim options and active theme selection
76+
│ └── theme.lua # Theme switcher logic
77+
├── test/ # CI validation suite (see test/README.md)
78+
│ ├── ci_validate.sh # Orchestrates all validation steps
79+
│ ├── fixtures/ # Source files used as treesitter parse targets
80+
│ └── *.lua # Headless validation scripts
81+
└── .github/workflows/
82+
└── validate.yml # GitHub Actions: build devcontainer + run test suite
83+
```
84+
85+
<br>
86+
3387
# Tests
3488
3589
See [`test/README.md`](test/README.md) for the full test suite documentation — scripts, fixtures, what each validates, and how to run the pipeline locally.

0 commit comments

Comments
 (0)