mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-26 15:06:45 +00:00
docs: update readme & style
This commit is contained in:
parent
1c8d224775
commit
c2affb9945
4 changed files with 136 additions and 20 deletions
117
README.md
117
README.md
|
@ -1,17 +1,90 @@
|
||||||
# neovim-flake
|
<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=starship&color=C9CBFF&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=starship&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=starship&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>
|
||||||
|
<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>
|
||||||
|
|
||||||
A highly configurable nix flake for neovim, packing everything you might need to create your own neovim IDE.
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://stars.medv.io/NotAShelf/neovim-flake.svg", title="commits"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
An Nix wrapped IDE layer for the superior text editor, Neovim.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**[<kbd> <br> Install <br> </kbd>][Install]**
|
||||||
|
**[<kbd> <br> Configure <br> </kbd>][Configure]**
|
||||||
|
**[<kbd> <br> Documentation <br> </kbd>][Documentation]**
|
||||||
|
**[<kbd> <br> Contribute <br> </kbd>][Contribute]**
|
||||||
|
**[<kbd> <br> FAQ <br> </kbd>][Faq]**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
A highly configurable nix flake for Neovim, packing everything you might need to create your own neovim IDE.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
**Using `nix`**
|
||||||
|
|
||||||
|
The easiest way to install is to use the `nix profile` command. To install the default configuration, run:
|
||||||
|
|
||||||
|
```console
|
||||||
|
nix run github:notashelf/neovim-flake
|
||||||
|
```
|
||||||
|
The package exposes `.#nix` as the default output. You may use `.#nix`, `.#tidal` or `.#maximal` to get different configurations.
|
||||||
|
|
||||||
|
It is as simply 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Similar instructions will apply for `nix profile install`.
|
||||||
|
|
||||||
|
**On NixOS**
|
||||||
|
|
||||||
|
NixOS users may add this repo to their flake inputs as such:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
# point at this repository, you may pin specific revisions or branches while using `github:`
|
||||||
|
neovim-flake.url = "github:notashelf/neovim-flake";
|
||||||
|
|
||||||
|
# you may override our nixpkgs with your own, this will save you some cache hits and s recommended
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, you can use the `neovim-flake` input in your `systemPackages` or `home.packages`.
|
||||||
|
|
||||||
|
## Configure
|
||||||
|
|
||||||
|
TODO (awaiting #1 to be merged, which implements a separate configuration file)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
See the [neovim-flake Manual](https://notashelf.github.io/neovim-flake/) for documentation, available options, and release notes.
|
See the [neovim-flake Manual](https://notashelf.github.io/neovim-flake/) for detailed documentation, available options, and release notes.
|
||||||
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 **neovim-flake** you can get a fully featured configuration with `nix` language support by running:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
nix run github:notashelf/neovim-flake
|
nix run github:notashelf/neovim-flake
|
||||||
```
|
```
|
||||||
|
|
||||||
The documentation is scarce right now as a result of the ongoing rebase and refactor, but shall be available once more soon.
|
The documentation is scarce right now as a result of the ongoing rebase and refactor, but shall be available once more soon.
|
||||||
|
|
||||||
## Help
|
## Help
|
||||||
|
|
||||||
|
@ -19,24 +92,36 @@ You can create an issue on the [issue tracker](issues) to ask questions or repor
|
||||||
|
|
||||||
## Philosophy
|
## Philosophy
|
||||||
|
|
||||||
The philosophy behind this flake configuration is to create an eaesily configurable and reproducible neovim environment. While it does sacrifice in size
|
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 flexibiity and configurability in exchange for the large size of the flake inputs.
|
(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 been abandoneed here, but you can ultimately declare a configuration that follows KISS.
|
The KISS (Keep it simple, stupid) principle has been abandoned here, but you can ultimately declare a configuration that follows KISS.
|
||||||
For it is very easy to bring your own plugins and configurations. Whether you are a developer, writer, or live coder (see tidal cycles below!),
|
For it is very easy to bring your own plugins and configurations. Whether you are a developer, writer, or live coder (see tidal cycles below!),
|
||||||
quickly craft a config that suits every project's need. Think of it like a distribution of Neovim that takes advantage of pinning vim plugins and
|
quickly craft a config that suits every project's need. Think of it like a distribution of Neovim that takes advantage of pinning vim plugins and
|
||||||
third party dependencies (such as tree-sitter grammars, language servers, and more).
|
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.
|
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.
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
This configuration is based on a few other configurations, including:
|
This configuration is based on a few other configurations, including:
|
||||||
|
|
||||||
- @sioodmy's [dotfiles](https://github.com/sioodmy/dotfiles)
|
- [@sioodmy's](https://github.com/sioodmy) [dotfiles](https://github.com/sioodmy/dotfiles)
|
||||||
- @wiltaylor's [neovim-flake](https://github.com/wiltaylor/neovim-flake)
|
- [@wiltaylor's](https://github.com/wiltaylor) [neovim-flake](https://github.com/wiltaylor/neovim-flake)
|
||||||
- @jordanisaacs's [neovim-flake](https://github.com/jordanisaacs/neovim-flake)
|
- [@jordanisaacs's](https://github.com/jordanisaacs) [neovim-flake](https://github.com/jordanisaacs/neovim-flake)
|
||||||
- @gvolpe's [neovim-flake](https://github.com/gvolpe/neovim-flake)
|
- [@gvolpe's](https://github.com/gvolpe) [neovim-flake](https://github.com/gvolpe/neovim-flake)
|
||||||
|
|
||||||
I am grateful for their work and inspiration.
|
I am grateful for their work and inspiration.
|
||||||
|
|
||||||
---
|
## FAQ
|
||||||
|
|
||||||
|
**Q**: Why is this flake so big?
|
||||||
|
|
||||||
|
**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.
|
||||||
|
|
||||||
|
**Q**: Will you use a plugin manager?
|
||||||
|
|
||||||
|
**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. We load plugins with raw lua.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
@ -18,7 +18,7 @@ The following is an example of a barebones vim configuration with the default th
|
||||||
[source,nix]
|
[source,nix]
|
||||||
----
|
----
|
||||||
{
|
{
|
||||||
inputs.neovim-flake.url = "github:jordanisaacs/neovim-flake";
|
inputs.neovim-flake.url = "github:notashelf/neovim-flake";
|
||||||
|
|
||||||
outputs = {nixpkgs, neovim-flake, ...}: let
|
outputs = {nixpkgs, neovim-flake, ...}: let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
|
@ -7,7 +7,7 @@ While you can configure neovim-flake yourself using the builder, here are a few
|
||||||
=== Tidal Cycles
|
=== Tidal Cycles
|
||||||
|
|
||||||
[source,console]
|
[source,console]
|
||||||
$ nix run github:jordanisaacs/neovim-flake#tidal file.tidal
|
$ nix run github:notashelf/neovim-flake#tidal file.tidal
|
||||||
|
|
||||||
Utilizing https://github.com/tidalcycles/vim-tidal[vim-tidal] and mitchmindtree's fantastic https://github.com/mitchmindtree/tidalcycles.nix[tidalcycles.nix] start playing with tidal cycles in a single command.
|
Utilizing https://github.com/tidalcycles/vim-tidal[vim-tidal] and mitchmindtree's fantastic https://github.com/mitchmindtree/tidalcycles.nix[tidalcycles.nix] start playing with tidal cycles in a single command.
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ In your tidal file, type a cycle e.g. `d1 $ s "drum"` and then press _ctrl+enter
|
||||||
=== Nix
|
=== Nix
|
||||||
|
|
||||||
[source,console]
|
[source,console]
|
||||||
$ nix run github:jordanisaacs/neovim-flake#nix test.nix
|
$ nix run github:notashelf/neovim-flake#nix test.nix
|
||||||
|
|
||||||
Enables all the of neovim plugins, with language support for specifically Nix. This lets you see what a fully configured neovim setup looks like without downloading a whole bunch of language servers and associated tools.
|
Enables all the of neovim plugins, with language support for specifically Nix. This lets you see what a fully configured neovim setup looks like without downloading a whole bunch of language servers and associated tools.
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Enables all the of neovim plugins, with language support for specifically Nix. T
|
||||||
=== Maximal
|
=== Maximal
|
||||||
|
|
||||||
[source,console]
|
[source,console]
|
||||||
$ nix shell github:jordanisaacs/neovim-flake#maximal test.nix
|
$ nix shell github:notashelf/neovim-flake#maximal test.nix
|
||||||
|
|
||||||
It is the same fully configured neovim as with the <<sec-default-nix,Nix>> config, but with every supported language enabled.
|
It is the same fully configured neovim as with the <<sec-default-nix,Nix>> config, but with every supported language enabled.
|
||||||
|
|
||||||
|
|
31
docs/release-notes/rl-0.2.adoc
Normal file
31
docs/release-notes/rl-0.2.adoc
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
[[sec-release-0.2]]
|
||||||
|
== Release 0.2
|
||||||
|
|
||||||
|
Release notes for release 0.2
|
||||||
|
|
||||||
|
|
||||||
|
[[sec-release-0.1-changelog]]
|
||||||
|
=== Changelog
|
||||||
|
|
||||||
|
https://github.com/notashelf[notashelf]:
|
||||||
|
|
||||||
|
* Added minimap options under `vim.minimap`. The default will be codewindow.nvim.
|
||||||
|
|
||||||
|
* Removed hare language support (lsp/tree-sitter/etc). `vim.lsp.hare` is no longer defined. If you use hare and would like it added back, please file an issue.
|
||||||
|
|
||||||
|
* <<opt-vim.startPlugins>> & <<opt-vim.optPlugins>> are now an enum of `string` for options sourced from the flake inputs. Users can still provide vim plugin packages.
|
||||||
|
+
|
||||||
|
If you are contributing and adding a new plugin, add the plugin name to `availablePlugins` in https://github.com/jordanisaacs/neovim-flake/blob/20cec032bd74bc3d20ac17ce36cd84786a04fd3e/modules/lib/types-plugin.nix[types-plugin.nix].
|
||||||
|
|
||||||
|
* `neovimBuilder` has been removed for configuration. Using an overlay is no longer required. See the manual for the new way to configuration.
|
||||||
|
|
||||||
|
* Treesitter grammars are now configurable with <<opt-vim.treesitter.grammars>>. Utilizes the nixpkgs `nvim-treesitter` plugin rather than a custom input in order to take advantage of build support of pinned versions. See https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees[discourse] for more information. Packages can be found under the `vimPlugins.nvim-treesitter.builtGrammars` namespace.
|
||||||
|
|
||||||
|
* <<opt-vim.configRC>> and <<opt-vim.luaConfigRC>> are now of type DAG lines. This allows for ordering of the config. Usage is the same is in home-manager's `home.activation` option.
|
||||||
|
+
|
||||||
|
[source,nix]
|
||||||
|
----
|
||||||
|
vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here"
|
||||||
|
----
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue