Skip to content

Commit 6355e9e

Browse files
committed
docs: add module diagram
1 parent 49bf22e commit 6355e9e

1 file changed

Lines changed: 69 additions & 1 deletion

File tree

DEV.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ rm luacov.stats.out && just test && just generate-test-coverage-report && open l
3232
### Version release & distribution
3333

3434
1. Cut off a version in `CHANGELOG.md` by moving the content of “Unreleased” to
35-
“TBR — \<date\>”.
35+
“TBR —\<date\>”.
3636
1. Bump the version with a commit & tag:
3737
`just bump`.
3838
1. Release the version commit & tag:
@@ -84,6 +84,74 @@ graph TD
8484
end
8585
```
8686

87+
## Architecture
88+
89+
```mermaid
90+
---
91+
title: Coerce.nvim module structure
92+
---
93+
graph LR
94+
coerce[coerce.lua]
95+
96+
subgraph "coerce/"
97+
keymap[keymap]
98+
99+
subgraph "Logic"
100+
case
101+
transformer
102+
conversion -.-> selector
103+
conversion -.-> transformer
104+
end
105+
106+
subgraph "Utils"
107+
region
108+
string
109+
table
110+
end
111+
112+
subgraph "Neovim Utils"
113+
operator
114+
visual
115+
end
116+
117+
subgraph "vim" [vim/]
118+
vim-api[vim.api]
119+
vim-fn[vim.fn]
120+
vim-lsp[vim.lsp]
121+
end
122+
123+
case --> string
124+
transformer --> region
125+
selector --> region
126+
127+
selector --> operator
128+
selector --> visual
129+
130+
transformer --> vim
131+
transformer --> vim
132+
operator --> vim
133+
visual --> vim
134+
end
135+
136+
coerce --> case
137+
coerce --> selector
138+
coerce --> transformer
139+
coerce --> keymap
140+
coerce --> conversion
141+
142+
vim-api --> region
143+
```
144+
145+
### Module Breakdown
146+
147+
- **Entry point**:
148+
`coerce.lua` initializes the plugin and orchestrates the different components.
149+
- **Logic**:
150+
Contains the core transformation logic, including case conversion rules and
151+
application strategies (local vs. LSP rename).
152+
- **vim/**:
153+
Utilities for Neovim API.
154+
87155
## ARDs
88156

89157
### Using LuaRocks

0 commit comments

Comments
 (0)