Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.6 #231

Merged
merged 223 commits into from
Apr 28, 2024
Merged

v0.6 #231

Show file tree
Hide file tree
Changes from 218 commits
Commits
Show all changes
223 commits
Select commit Hold shift + click to select a range
868f808
visuals/fidget: switch input branch to main
FrothyMarrow Feb 11, 2024
042af02
visuals/fidget: migrate to newer configuration with custom setup options
FrothyMarrow Feb 11, 2024
adde1f0
docs: add entry for rewritten `fidget.nvim` module
FrothyMarrow Feb 19, 2024
fc51196
visuals/fidget: add `mkRemovedOptionModule` for the old configuration…
FrothyMarrow Feb 19, 2024
0b9e5e8
docs: use mkRenamedOptionModule instead of RemovedOption
horriblename Feb 19, 2024
055fcb4
visuals/fidget: fix plugin setupOpts name
FrothyMarrow Feb 19, 2024
60b0b40
Merge pull request #211 from FrothyMarrow/fidget-rewrite
NotAShelf Feb 19, 2024
48c8f38
languages/lua: always include lua parser with treesitter
FrothyMarrow Feb 20, 2024
94f18af
Merge pull request #233 from FrothyMarrow/fix-lua-highlighting
NotAShelf Feb 20, 2024
29b9bd4
utility/binds/which-key: allow configurable category labels
FrothyMarrow Feb 21, 2024
f19a5dd
lib: add function defaultAttributes
FrothyMarrow Feb 25, 2024
b9aa708
treewide: register whichKey labels
FrothyMarrow Feb 25, 2024
9a7087e
docs: add entry for option `vim.binds.whichKey.register`
FrothyMarrow Feb 25, 2024
4716fd7
treewide: rename function `defaultAttributes` to `pushDownDefault`
FrothyMarrow Feb 26, 2024
bc0586b
flake: bump nixpkgs input
NotAShelf Feb 26, 2024
54a6e28
flake: move home-manager module to flake-parts root
NotAShelf Feb 26, 2024
4bc51c5
modules/assistant: completely drop tabnine
NotAShelf Feb 26, 2024
460ba8c
lib: deprecate unused nmd lib extension
NotAShelf Feb 26, 2024
bf1118e
lib: start moving top-level binds to `binds`
NotAShelf Feb 26, 2024
024e1a6
modules: make lib calls explicit where possible
NotAShelf Feb 26, 2024
7cb4285
utility/images: add image.nvim
NotAShelf Feb 17, 2024
d7878b5
utility/images: add magick to lua packages
FrothyMarrow Feb 17, 2024
a6b1331
utility/images: fix unrelated options being part of 'integrations'
FrothyMarrow Feb 17, 2024
d2af305
utility/images: remote hologram.nviö
NotAShelf Feb 26, 2024
30fb2e4
images/image-nvim: make lib calls more explicit
NotAShelf Feb 26, 2024
b6166f2
utility/images: remove import for non existing hologram module
FrothyMarrow Feb 26, 2024
2d16435
utility/images/image-nvim: fix inherit for `mkPluginSetupOption`
FrothyMarrow Feb 26, 2024
a32f13b
lib: fix trying to call an attrset
FrothyMarrow Feb 26, 2024
38ca1f9
utility/images/image-nvim: add assertion for `ueberzug` backend on da…
FrothyMarrow Feb 26, 2024
dbbd7b2
Merge pull request #224 from NotAShelf/image-nvim
FrothyMarrow Feb 26, 2024
a738083
Merge remote-tracking branch 'upstream/v0.6' into which-key-categories
FrothyMarrow Feb 26, 2024
37645ff
Merge pull request #235 from FrothyMarrow/which-key-categories
NotAShelf Feb 27, 2024
83da7ac
images/image-nvim: remove assert for `ueberzug` backend on darwin
FrothyMarrow Feb 28, 2024
685a6ea
Merge pull request #236 from FrothyMarrow/wezterm-iterm2-backend
NotAShelf Feb 28, 2024
d29934b
wrapper: migrate to `makeNeovimUnstable` wrapper
FrothyMarrow Feb 29, 2024
6d3f282
modules/languages: switch to explicit lib calls
NotAShelf Mar 8, 2024
b96737b
flake: bump inputs
NotAShelf Mar 9, 2024
f2c90a8
docs: update assets path in the README
NotAShelf Mar 9, 2024
dfc7c67
modules/languages: finish making lib calls explicit
NotAShelf Mar 9, 2024
c488f04
modules/lsp: switch to explicit lib calls
NotAShelf Mar 12, 2024
f6db808
modules/minimap: switch to explicit lib calls
NotAShelf Mar 12, 2024
2101ac9
modules/notes: switch to explicit lib calls
NotAShelf Mar 12, 2024
2c483d9
modules/theme: switch to explicit lib calls
NotAShelf Mar 12, 2024
32c2e77
modules/terminal: switch to explicit lib calls
NotAShelf Mar 12, 2024
e80f2c9
modules/tabline: switch to explicit lib calls
NotAShelf Mar 12, 2024
3a9f5db
modules/statusline: switch to explicit lib calls
NotAShelf Mar 12, 2024
e5383a8
modules/snippets: switch to explicit lib calls
NotAShelf Mar 12, 2024
03025f7
modules/session: switch to explicit lib calls
NotAShelf Mar 12, 2024
b54032f
modules/projects: switch to explicit lib calls
NotAShelf Mar 12, 2024
d3f6446
lib: add pushDownDefault to binds
NotAShelf Mar 12, 2024
81b9a8a
modules/treesitter: switch to explicit lib calls
NotAShelf Mar 15, 2024
a753118
modules/ui: switch to explicit lib calls
NotAShelf Mar 16, 2024
974bfcc
treewide: make lib calls explicit
FrothyMarrow Mar 24, 2024
dbe7bae
Merge pull request #241 from FrothyMarrow/lib-calls-explicit
NotAShelf Mar 24, 2024
315f44c
flake: provide formatter in default shell
FrothyMarrow Mar 24, 2024
db0df5c
flake: update plugin inputs
NotAShelf Apr 3, 2024
5955d53
modules/ui: switch to explicit lib calls
NotAShelf Mar 15, 2024
42016d8
Merge pull request #237 from FrothyMarrow/unstable-wrapper
NotAShelf Mar 1, 2024
4001943
feat(nvimtree): add custom setup options
horriblename Jan 2, 2024
376c8ba
feat(lualine): add custom setup options
horriblename Jan 2, 2024
df8784c
feat(telescope): add custom setup options
horriblename Jan 2, 2024
379231b
feat(lsp-signature): custom setup
horriblename Feb 17, 2024
62b0791
feat(docs-view): custom setup
horriblename Feb 17, 2024
88c22ef
feat(copilot): custom setup opts
horriblename Feb 17, 2024
e5fba51
feat(obsidian-nvim): custom setup
horriblename Feb 17, 2024
2feaadc
feat(orgmode): custom setup
horriblename Feb 17, 2024
3f4ef98
feat(todo-comments): custom setup
horriblename Feb 17, 2024
4db6950
feat(project-nvim): custom setup
horriblename Feb 17, 2024
6fd3597
feat(autopairs): custom setup opts
horriblename Feb 17, 2024
0e802c0
feat(neocord): custom setup
horriblename Feb 17, 2024
47acf32
dev: add custom type rawLua
horriblename Mar 3, 2024
59d5ac0
feat(session-manager): custom setup opts
horriblename Mar 3, 2024
daa10b5
feat(toggleterm): custom setup opts
horriblename Mar 9, 2024
4b79c50
feat(breadcrumbs): custom setup opts
horriblename Mar 10, 2024
7e16923
refactor: reduce duplicate code
horriblename Mar 10, 2024
5387ca2
feat(colorizer): custom setup opts
horriblename Mar 10, 2024
64f167e
feat(modes): custom setup opts
horriblename Mar 10, 2024
80fee9d
feat(nvim-notify): custom setup opts
horriblename Mar 10, 2024
5ea6272
feat(smartcolumn): custom setup opts
horriblename Mar 10, 2024
77d3cd5
lib: switch to mkLuaInline
horriblename Mar 16, 2024
5d8eb19
plugins: switch to mkLuaInline
horriblename Mar 16, 2024
29f78f7
fix(nvimtree): errors in refactor
horriblename Mar 16, 2024
2d9c1b3
cleanup: remove references to nvim-compe
horriblename Mar 22, 2024
87e8732
statusline/lualine: fix wrong type for nvim-navic
NotAShelf Apr 6, 2024
1d5fa0a
remove sub-options for lualine.setupOpts
Apr 6, 2024
893742f
cleanup: remove more nvim-compe
Apr 6, 2024
01e35f9
fix: temp descriptions
horriblename Apr 6, 2024
86443be
docs: update release notes
horriblename Apr 6, 2024
2be8db5
docs: developer docs on setupOpts
horriblename Apr 6, 2024
e1835f6
Merge pull request #238 from horriblename/setupopts
NotAShelf Apr 7, 2024
7c730a7
treewide: begin restructuring the module tree
NotAShelf Apr 7, 2024
a12ba56
lib: move all binding related functions to lib/binds
NotAShelf Apr 7, 2024
51e28d4
lib: move global functions to extended lib
NotAShelf Apr 7, 2024
cf09a3b
flake/modules: add nixos-module; expose builtPackage
NotAShelf Apr 8, 2024
859b03d
flake: autodiscover plugin inputs
NotAShelf Apr 8, 2024
88cf62f
modules: add prefix to plugin builder
NotAShelf Apr 9, 2024
3861d9a
flake: pass `inputs` to docs
NotAShelf Apr 9, 2024
576429b
basic/spellcheck: pass a string to literalExpression
NotAShelf Apr 9, 2024
b928f0b
docs: extract `scrubDerivations` function from `nmd`
NotAShelf Apr 9, 2024
6011ec2
lib: get rid of the redundant `let in` block
NotAShelf Apr 9, 2024
b4384a8
modules: move vim-dirtytalk to `plugins/spellcheck`
NotAShelf Apr 14, 2024
cb362a7
modules/core: move mkSection functions to lib/dag
NotAShelf Apr 14, 2024
219f048
configuration.nix: remove redundant `vim` parrent attributes
NotAShelf Apr 14, 2024
011e6c0
neovim/basic: remove option list in `lineNumberMode` opt description
NotAShelf Apr 14, 2024
b1d6ec7
Merge pull request #245 from NotAShelf/new-tree-structure
NotAShelf Apr 14, 2024
ecbe60d
flake: update inputs
NotAShelf Apr 14, 2024
534b837
docs: 0.6 release notes; update developer documentation
NotAShelf Apr 14, 2024
ebac4c8
flake: don't type check builtPackage
NotAShelf Apr 14, 2024
2aa004b
flake/modules: remove builtPackage
NotAShelf Apr 14, 2024
8c4f326
Revert "flake/modules: remove builtPackage"
NotAShelf Apr 14, 2024
c53c831
flake/modules: add finalPackage akin to nixos' neovim module
NotAShelf Apr 14, 2024
165c336
plugins/glow: get `pushDownDefault` from `lib.nvim.binds`
NotAShelf Apr 14, 2024
f78696f
plugins/git: add vim-fugitive; modularize
NotAShelf Apr 14, 2024
44120bd
Merge pull request #249 from NotAShelf/plugins/fugitive
NotAShelf Apr 14, 2024
7ef583a
plugins/gitsigns: fix renamedOptionModule definition
NotAShelf Apr 14, 2024
7cb47c7
utility/telescope: add plenary-nvim to explicit dependencies
NotAShelf Apr 14, 2024
b93ce3c
plugins/nvim-cmp: add alwaysComplete option
Apr 14, 2024
522a1b9
Merge pull request #250 from jacekpoz/v0.6
NotAShelf Apr 14, 2024
d2d4036
lib/lua: move wrapLuaConfig to lib & structure arguments
NotAShelf Apr 17, 2024
60dd98c
core/build: add luaConfigPre and luaConfigPost
NotAShelf Apr 17, 2024
2366ba3
docs: add release note entries for `luaConfigBefore` & `luaConfigAfter`
NotAShelf Apr 17, 2024
bd9eb56
Merge pull request #251 from NotAShelf/additional-runtime
NotAShelf Apr 18, 2024
4beab03
docs: restructure documentation
NotAShelf Apr 20, 2024
ba9449c
docs: reduce section depth in TOC
NotAShelf Apr 20, 2024
67927b5
docs: use `--subst-var-by` instead of `--replace-fair`
NotAShelf Apr 20, 2024
2d08f3a
docs: filter source by markdown
NotAShelf Apr 18, 2024
f8d564c
lib: add functions to create DAGs from lists
rycee Apr 18, 2024
99fd8c9
fix: bad import
horriblename Apr 18, 2024
93b6dbc
docs: include DAGs section in configuring chapter
NotAShelf Apr 18, 2024
fe0d79b
Merge pull request #253 from horriblename/fix-bad-import
NotAShelf Apr 18, 2024
3709b72
fix: typo
horriblename Apr 18, 2024
20d1d20
Merge pull request #252 from NotAShelf/docs-refactor
NotAShelf Apr 18, 2024
bea3b43
fix: renamed option as setupOpts
horriblename Apr 19, 2024
e710afd
fix: add rename warnings for nvimtree.setupOpts
horriblename Apr 19, 2024
8fe69dd
cleanup: extra print
horriblename Apr 20, 2024
21aa209
docs: explain setupOpts
horriblename Apr 20, 2024
685176e
docs: crude migration guide
horriblename Apr 20, 2024
13b59b0
Merge pull request #256 from horriblename/cleanup-extra-print
NotAShelf Apr 20, 2024
ef6be76
core/build: allow paths in `additionalRuntim`
NotAShelf Apr 20, 2024
3766db3
fix: bad rebase
horriblename Apr 19, 2024
79e1691
Merge pull request #255 from horriblename/unfuck-fuckups
horriblename Apr 20, 2024
b38886d
refactor: extract function to lib
horriblename Apr 20, 2024
b682148
docs: format text
horriblename Apr 20, 2024
f5270d3
fixup! refactor: extract function to lib
horriblename Apr 20, 2024
4ff3919
fixup! docs: crude migration guide
horriblename Apr 20, 2024
4335255
types/plugins: align `mkPluginSetupOption` description
NotAShelf Apr 20, 2024
8249955
Merge pull request #257 from horriblename/docs-setupOpts
NotAShelf Apr 20, 2024
f3817fb
Merge pull request #254 from horriblename/fix-bad-import
NotAShelf Apr 20, 2024
27eedd0
plugins/spellcheck: use the internal `vim.spellChecking` as enable co…
NotAShelf Apr 20, 2024
4c5b33b
wrapper: enable spellchecking for maximal package
NotAShelf Apr 20, 2024
4997865
types/plugins: inherit `example` in pluginsOpt
NotAShelf Apr 20, 2024
6eea801
neovim/spellcheck: allow disabling spellchecking for filetypes
NotAShelf Apr 20, 2024
4326304
treewide: restructure modules directory; add comments to modules top-…
NotAShelf Apr 20, 2024
738f670
docs: update v0.6 release notes
NotAShelf Apr 20, 2024
5c7fd22
flake: update inputs
NotAShelf Apr 20, 2024
4d8dcc7
modules/neovim: rename `vim.spellChecking` to `vim.spellcheck`
NotAShelf Apr 20, 2024
6d681c2
flake/modules: add options to set default editor to nixos and home-ma…
NotAShelf Apr 20, 2024
f17cf11
wrapper: rename `spellChecking` to `spellcheck`
NotAShelf Apr 20, 2024
0388898
docs: fix build failures due to `literalMD`
NotAShelf Apr 20, 2024
e982955
modules: add documentation comments to internal variables
NotAShelf Apr 20, 2024
8ca0760
flake/modules: remove redundant lib calls
NotAShelf Apr 20, 2024
25dc887
flake/modules: return manpage package as a singleton
NotAShelf Apr 20, 2024
d2b8e27
docs: include header and footer in manpages; move man to its own dir
NotAShelf Apr 20, 2024
a8d7f98
Merge pull request #259 from NotAShelf/post-restructure
NotAShelf Apr 20, 2024
ff999f3
filetree/nvimtree: suppress internal `disableNetrc` warning
NotAShelf Apr 20, 2024
d9a984b
modules/wrapper: move RC features to `wrapper/rc`
NotAShelf Apr 20, 2024
7647353
modules/wrapper: make all wrapper features configurable
NotAShelf Apr 20, 2024
eb8d75a
modules/neovim: move all mapping options to
NotAShelf Apr 20, 2024
be0fd17
wrapper/rc: document `enableLuaLoader` better; link to docs
NotAShelf Apr 20, 2024
fecf9f4
wrapper/rc: ignore user directories by default
NotAShelf Apr 20, 2024
2f4dcaf
modules: pass `extraPackages` to wrapper `PATH`
NotAShelf Apr 21, 2024
56d9c0a
docs: update v0.6 release notes
NotAShelf Apr 21, 2024
ef46635
Merge pull request #260 from NotAShelf/extra-wrapper-features
NotAShelf Apr 21, 2024
72a5e6c
wrapper/rc: remove redundant lib calls
NotAShelf Apr 21, 2024
50609c7
wrapper/rc: document `vim.globals` better
NotAShelf Apr 21, 2024
140ed6d
assistant/chatgpt: Add jackMort/ChatGPT.nvim
ksonj Apr 20, 2024
56012ea
docs: update v0.6 release notes
NotAShelf Apr 21, 2024
64c7e42
Merge pull request #258 from NotAShelf/plugin/chatgpt
NotAShelf Apr 22, 2024
29f55e2
configuration.nix: disable assistant plugins in maximal mode
NotAShelf Apr 23, 2024
8940222
flake: update inputs; build oxocarbon from main repository
NotAShelf Apr 23, 2024
2680be2
neovim/debug: handle debug log path correctly
NotAShelf Apr 23, 2024
495e762
plugins/treesitter: move nvim-treesitter-context to its own dir
NotAShelf Apr 23, 2024
7fd653b
plugins/treesitter: add an internal `defaultGrammars` options
NotAShelf Apr 23, 2024
b614dc6
lib/lists: init; add `listContainsValue`
NotAShelf Apr 23, 2024
49b705b
plugins/treesitter: fix typo in doc comment
NotAShelf Apr 23, 2024
5e08ed4
plugins/treesitter: allow `highlight` to be fine-grained
NotAShelf Apr 23, 2024
5e12c23
plugins/treesitter: allow user to toggle default grammars
NotAShelf Apr 23, 2024
ad9d0c6
ui/noice: add missing treesitter grammars
NotAShelf Apr 23, 2024
4b868d0
wrapper/rc: loop over removed runtime paths
NotAShelf Apr 23, 2024
feb7cd7
plugins/treesitter: write setup options after `basic` DAG
NotAShelf Apr 24, 2024
103941e
treesitter/ts-context: fix duplicate config entry
NotAShelf Apr 24, 2024
92c94fd
plugins/treesiter: set up fold after `basic`
NotAShelf Apr 24, 2024
2941092
Revert "plugins/treesiter: set up fold after `basic`"
NotAShelf Apr 24, 2024
5246cf5
plugins/theme: enable ts-context support for Catppuccin
NotAShelf Apr 24, 2024
e8035c4
flake: bump inputs
NotAShelf Apr 24, 2024
a56aa7b
notifications/nvim-notify: add render opt; update trace symbol
NotAShelf Apr 26, 2024
ebe0d6c
docs: update v0.6 release notes
NotAShelf Apr 26, 2024
500652d
types/luaInline: do not coerce strings into luaInline
horriblename Apr 27, 2024
79f0d87
Merge pull request #264 from horriblename/no-str-to-luainline
NotAShelf Apr 27, 2024
227f80a
docs: rename all instances of `neovim-flake` to `nvf`
NotAShelf Apr 27, 2024
97a64ab
treewide: clean up references to neovim-flake
NotAShelf Apr 27, 2024
40979a6
docs: clean up remaining mentions of neovim-flake
NotAShelf Apr 27, 2024
5fa1ee5
Merge pull request #265 from NotAShelf/rename
NotAShelf Apr 27, 2024
b397dcb
Merge branch 'main' into v0.6
NotAShelf Apr 27, 2024
aaf286d
modules: fix merge conflicts
NotAShelf Apr 27, 2024
1740b43
neovim/spellcheck: disable programming wordlist
NotAShelf Apr 27, 2024
89bdd80
meta: mark as release
NotAShelf Apr 27, 2024
c220da2
fidget: remove ineffectful option
horriblename Apr 27, 2024
0c4f7a5
lib: fix crash on non-attrset arg
horriblename Apr 27, 2024
f0631c2
fidget: do not apply mkLuaInline to str opts
horriblename Apr 27, 2024
a5594fd
config: disable neocord
horriblename Apr 27, 2024
053ca39
docs: fix typo
horriblename Apr 27, 2024
cc0617b
Merge pull request #267 from horriblename/disable-neocord
NotAShelf Apr 27, 2024
8ad6233
Merge pull request #266 from horriblename/no-apply-lua-inline
NotAShelf Apr 27, 2024
293b290
fix: repair logo path in README
Apr 27, 2024
57b5585
Merge pull request #268 from jacekpoz/v0.6
NotAShelf Apr 27, 2024
636eba7
treesitter: fix example
horriblename Apr 28, 2024
8c5a63e
treesitter: cleanup unused
horriblename Apr 28, 2024
56a8476
Merge pull request #269 from horriblename/fix-weird-luainline
NotAShelf Apr 28, 2024
c8d3887
plugins/treesitter: migrate treesitter-context to new `setupOpts`
NotAShelf Apr 28, 2024
616c00a
plugins/treesitter: generate Lua configuration from Nix
NotAShelf Apr 28, 2024
694012d
neovim/init: override vim syntax highlighting with Treesitter
NotAShelf Apr 30, 2024
bba0ba9
Merge pull request #261 from NotAShelf/treesitter
NotAShelf Apr 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
175 changes: 77 additions & 98 deletions .github/README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,40 @@
<div align="center">
<img src="../assets/neovim-flake-logo-work.svg" alt="neovim-flake Logo" width="200">
<img src=".github/assets/nvf-logo-work.svg" alt="nvf Logo" width="200">
</div>

<h1 align="center">❄️ neovim-flake</h1>

<div align="center">
<a>
A highly modular, configurable, extensible and easy to use Neovim configuration wrapper written in Nix. Designed for flexibility and ease of use and with code quality in mind.
</a>
</div>
<br/>

<h1 align="center">❄️ nvf</h1>
<div align="center">
<p>
<a href="https://github.com/NotAShelf/neovim-flake/releases/latest">
<img alt="Latest release" src="https://img.shields.io/github/v/release/NotAShelf/neovim-flake?style=for-the-badge&logo=nixos&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41" />
<a href="https://github.com/NotAShelf/nvf/releases/latest">
<img alt="Latest release" src="https://img.shields.io/github/v/release/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=C9CBFF&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/NotAShelf/neovim-flake/pulse">
<img alt="Last commit" src="https://img.shields.io/github/last-commit/NotAShelf/neovim-flake?style=for-the-badge&logo=starship&color=8bd5ca&logoColor=D9E0EE&labelColor=302D41"/>
<a href="https://github.com/NotAShelf/nvf/pulse">
<img alt="Last commit" src="https://img.shields.io/github/last-commit/NotAShelf/nvf?style=for-the-badge&logo=starship&color=8bd5ca&logoColor=D9E0EE&labelColor=302D41"/>
</a>
<a href="https://github.com/NotAShelf/neovim-flake/blob/main/LICENSE">
<img alt="License" src="https://img.shields.io/github/license/NotAShelf/neovim-flake?style=for-the-badge&logo=nixos&color=ee999f&logoColor=D9E0EE&labelColor=302D41" />
<a href="https://github.com/NotAShelf/nvf/blob/main/LICENSE">
<img alt="License" src="https://img.shields.io/github/license/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=ee999f&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/NotAShelf/neovim-flake/stargazers">
<img alt="Stars" src="https://img.shields.io/github/stars/NotAShelf/neovim-flake?style=for-the-badge&logo=nixos&color=c69ff5&logoColor=D9E0EE&labelColor=302D41" />
<a href="https://github.com/NotAShelf/nvf/stargazers">
<img alt="Stars" src="https://img.shields.io/github/stars/NotAShelf/nvf?style=for-the-badge&logo=nixos&color=c69ff5&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/NotAShelf/neovim-flake/issues">
<img alt="Issues" src="https://img.shields.io/github/issues/NotAShelf/neovim-flake?style=for-the-badge&logo=bilibili&color=F5E0DC&logoColor=D9E0EE&labelColor=302D41" />
<a href="https://github.com/NotAShelf/nvf/issues">
<img alt="Issues" src="https://img.shields.io/github/issues/NotAShelf/nvf?style=for-the-badge&logo=bilibili&color=F5E0DC&logoColor=D9E0EE&labelColor=302D41" />
</a>
<a href="https://github.com/NotAShelf/neovim-flake">
<img alt="Repo Size" src="https://img.shields.io/github/repo-size/NotAShelf/neovim-flake?color=%23DDB6F2&label=SIZE&logo=codesandbox&style=for-the-badge&logoColor=D9E0EE&labelColor=302D41" />
<a href="https://github.com/NotAShelf/nvf">
<img alt="Repo Size" src="https://img.shields.io/github/repo-size/NotAShelf/nvf?color=%23DDB6F2&label=SIZE&logo=codesandbox&style=for-the-badge&logoColor=D9E0EE&labelColor=302D41" />
</a>
</p>

<p align="center">
<img src="https://stars.medv.io/NotAShelf/neovim-flake.svg", title="stars"/>
<img src="https://stars.medv.io/NotAShelf/nvf.svg", title="stars"/>
</p>

<div align="center">
<a>
A highly modular, configurable, extensible and easy to use Neovim configuration
framework in Nix. Designed for flexibility and ease of use, this flake
allows you to easily configure your Neovim instance with a few lines of
Nix code.
</a>
</div>
<br/>

Expand Down Expand Up @@ -72,109 +71,81 @@

### Using `nix` CLI

If you would like to try out the configuration before even thinking about installing it, you can run the following command
If you would like to try out the configuration before even thinking about
installing it, you can run the following command

```console
nix run github:notashelf/neovim-flake
nix run github:notashelf/nvf
```

This will get you a feel for the base configuration and UI design. The flake exposes `#nix` as the default package, providing minimal language support and various
utilities.You may also use `#nix`, `#tidal` or `#maximal` to get try out different configurations.
This will get you a feel for the base configuration and UI design.
The flake exposes `#nix` as the default package, providing minimal
language support and various utilities.You may also use `#nix`,
`#tidal` or `#maximal` to get try out different configurations.

It is as simple as changing the target output to get a different configuration. For example, to get a configuration with `tidal` support, run:
It is as simple as changing the target output to get a different
configuration. For example, to get a configuration with `tidal` support, run:

```console
nix run github:notashelf/neovim-flake#tidal
nix run github:notashelf/nvf#tidal
```

Similar instructions will apply for `nix profile install`. However, you are recommended to instead use the module system as described in the manual.
Similar instructions will apply for `nix profile install`. However, you are
recommended to instead use the module system as described in the manual.

> [!NOTE]
> The `maximal` configuration is _massive_ and will take a while to build.
> To get a feel for the configuration, use the default `nix` or `tidal` configurations.
> Should you choose to try out the `maximal` configuration, using the binary cache as described
> in the manual is _strongly_ recommended.

### Docker

As of version 0.5, an image for the `nix` output is published to Dockerhub and GitHub packages with each tagged release. If you do not have Docker installed
on your system, you may run neovim within a container using your favorite tool. You are still recommended to use `nix` instead of Docker.

The following command will open the current directory in neovim with necessary tools bootstrapped.

```console
docker run -v `pwd`:/home/neovim/demo --rm -it notashelf/neovim-flake:latest
```

The available registeres are `ghcr.io` and `dockerhub` for the time being. Adjust to your liking.
> To get a feel for the configuration, use the default `nix` or `tidal`
> configurations. Should you choose to try out the `maximal` configuration,
> using the binary cache as described in the manual is _strongly_ recommended.

## Documentation

See the [neovim-flake Manual](https://notashelf.github.io/neovim-flake/) for detailed installation guides, configurations, available options, release notes
and more.
See the [**nvf** Manual](https://notashelf.github.io/nvf/) for
detailed installation guides, configurations, available options, release notes
and more. Tips for installing userspace plugins is also contained in the
documentation.

If you want to dive right into trying **neovim-flake** you can get a fully featured configuration with `nix`
language support by running:
If you want to dive right into trying **nvf** you can get a fully
featured configuration with `nix` language support by running:

```console
nix run github:notashelf/neovim-flake
nix run github:notashelf/nvf#nix
```

Please create an issue on the [issue tracker](../../../issues) if you find the documentation lacking or confusing.
I also appreciate any contributions to the documentation.
Please create an issue on the [issue tracker](../../../issues) if you find
the documentation lacking or confusing. I also appreciate any contributions
to the documentation.

## Help

You can create an issue on the [issue tracker](../../../issues) to ask questions or report bugs.
I am not yet on spaces like matrix or IRC, so please use the issue tracker for now.
You can create an issue on the [issue tracker](../../../issues) to ask questions
or report bugs. I am not yet on spaces like matrix or IRC, so please use the issue
tracker for now.

## Contributing

I am always looking for new ways to help improve this flake. If you would like to contribute, please read
the [contributing guide](CONTRIBUTING.md) before submitting a pull request. You can also create an
issue on the [issue tracker](../../../issues) before submitting a pull request if you would like to discuss
a feature or bug fix.

## Philosophy

The philosophy behind this flake configuration is to create an easily configurable and reproducible Neovim environment.
While it does sacrifice in size (which I know some users will find _disagreeable_), it offers a lot of flexibility and customizability in
exchange for the large size of the flake inputs. The "KISS" (Keep it simple, stupid) principle has mostly been abandoned here, however, you _can_
ultimately leverage the flexibility of this flake to declare a configuration that follows KISS principles, as it is very easy to bring your
own plugins and configurations from non-nix. What this flake is meant to be does eventually fall into your hands. Whether you are a
developer, writer, or live coder, you can quickly craft a config that suits every project's need. Think of it like a distribution of Neovim that you have
full control over. A distribution that takes advantage of pinning vim plugins and third party dependencies (such as tree-sitter grammars, language servers, and more).

One should never get a broken config when setting options. If setting multiple options results in a broken Neovim, file an issue!
Each plugin knows when another plugin which allows for smart configuration of keybindings and automatic setup of things
like completion sources and languages.
I am always looking for new ways to help improve this flake. If you would like
to contribute, please read the [contributing guide](CONTRIBUTING.md) before
submitting a pull request. You can also create an issue on the
[issue tracker](../../../issues) before submitting a pull request if you would
like to discuss a feature or bug fix.

## FAQ

**Q**: Why is this flake so big?
<br/>
**A**: I have sacrificed in size in order to provide a highly configurable and reproducible Neovim environment. A binary cache is provided to
eleminate the need to build the flake from source, but it is still a large flake. If you do not need all the features, you can use the default `nix` output
instead of the `maximal` output. This will reduce size by a lot, but you will lose some language specific features.
<br/><br/>

**Q**: Will you try to make this flake smaller?
**Q**: Can you add _X_?
<br/>
**A**: Yes. As a matter of fact, I am actively working on making this flake smaller. Unfortunately the process of providing everything
possible by itself makes the flake large. Best I can do is to optimize the flake as much as possible by selecting plugins that
are small and fast. And the binary cache, so at least you don't have to build it from source.
<br/><br/>
**A**: Maybe! It is not one of our goals to support each and every Neovim
plugin, however, I am always open to new modules and plugin setup additions
to **nvf**. Use the [appropritate issue
template](https://github.com/NotAShelf/nvf/issues/new/choose) and I will
consider a module addition.

**Q**: Will you use a plugin manager/language server installer?
**Q**: A plugin I need is not available in **nvf**. What to do?
<br/>
**A**: No. If you feel the need to ask that question, then you have missed the whole point of using nix and ultimately this flake.
The whole reason we use nix is to be able to handle EVERYTHING declaratively, well including the LSP and plugin installations.
<br/><br/>

**Q**: Can you add _X_?
<br/>
**A**: Maybe. Open an issue using the appropriate template and I will consider it. I do not intend to
add _every plugin that is in existence_, but I will consider it, should it offer something useful to the flake.
**A**: **nvf** exposes several APIs for you to be able to add your own
plugin configurations! Please see the documentation on how you may do
this.

## Credits

Expand All @@ -186,23 +157,31 @@ Special thanks to
- [@FlafyDev](https://github.com/FlafyDev) - For getting the home-manager to work
- [@n3oney](https://github.com/n3oney) - For making custom keybinds finally possible
- [@horriblename](https://github.com/horriblename) - For actively implementing planned features and quality of life updates
- [@Yavko](https://github.com/Yavko) - For the amazing neovim-flake logo
- [@Yavko](https://github.com/Yavko) - For the amazing **nvf** logo
- [@FrothyMarrow](https://github.com/FrothyMarrow) - For seeing mistakes that I could not

and everyone who has submitted issues or pull requests!

### Inspiration

This configuration borrows from and is based on a few other configurations, including:
This configuration borrows from and is based on a few other configurations,
including:

- [@jordanisaacs's](https://github.com/jordanisaacs) [neovim-flake](https://github.com/jordanisaacs/neovim-flake) that this flake is originally based on.
- [@sioodmy's](https://github.com/sioodmy) [dotfiles](https://github.com/sioodmy/dotfiles) that inspired the design choices.
- [@wiltaylor's](https://github.com/wiltaylor) [neovim-flake](https://github.com/wiltaylor/neovim-flake) for plugin and design ideas.
- [@gvolpe's](https://github.com/gvolpe) [neovim-flake](https://github.com/gvolpe/neovim-flake) for plugin, design and nix concepts.

I am grateful for their previous work and inspiration, and I wholeheartedly recommend checking their work out.
I am grateful for their previous work and inspiration, and I wholeheartedly
recommend checking their work out.
<br/>

## License

Following the [original neovim-flake](https://github.com/jordanisaacs/neovim-flake)
**nvf** has been made available under the **MIT License**. However, all assets
are published under the [CC BY License].

---

<div align="right">
Expand Down
Loading
Loading