Compare commits

...

7 commits

Author SHA1 Message Date
5589d1ff57
ci: ignore viwP in release notes
Some checks failed
Check for typos in the source tree / check-typos (push) Has been cancelled
2024-11-26 11:28:34 +03:00
a3038b697d
treewide: find and fix more typos 2024-11-26 11:24:25 +03:00
0e14e8008b
ci: check for typos in the source tree 2024-11-26 11:20:34 +03:00
f86f8bb9dc
meta: update CONTRIBUTING and pull request tempalte 2024-11-26 11:00:42 +03:00
63800378c9
ci: fix yaml syntax for check-docs workflow 2024-11-26 10:52:11 +03:00
c2de643f19
treewide: find and fix typos 2024-11-26 10:36:39 +03:00
38d265d434
manual/configuring: in-depth explanation of plugin input overrides 2024-11-26 10:15:04 +03:00
33 changed files with 172 additions and 79 deletions

View file

@ -8,23 +8,42 @@
## Welcome
I'm glad you are thinking about contributing to neovim-flake! If you're unsure about anything, just ask - or submit the issue or pull request anyway. The worst that can happen is you'll be politely asked to change something. Friendly contributions are always welcome.
I'm glad you are thinking about contributing to nvf! If you're unsure about
anything, just ask - or submit the issue or pull request anyway. The worst that
can happen is you'll be politely asked to change something. Friendly
contributions are always welcome.
Before you contribute, I encourage you to read this project's CONTRIBUTING policy (you are here), its [LICENSE](LICENSE.md), and its [README](README.md).
Before you contribute, I encourage you to read this project's CONTRIBUTING
policy (you are here) and its [LICENSE](../LICENSE) to understand how your
contributions are licensed.
If you have any questions regarding those files, feel free to open an issue or [shoot me an email](mailto:me@notashelf.dev). Discussions tab is also available for more informal discussions.
If you have any questions regarding those files, feel free to open an issue or
[shoot me an email](mailto:me@notashelf.dev). Discussions tab is also available
for more informal discussions.
## Contributing
The contribution process is mostly documented in the [pull request template](pull_request_template.md). You will find a checklist of items to complete before submitting a pull request. Please make sure you complete it before submitting a pull request. If you are unsure about any of the items, please ask.
The contribution process is mostly documented in the
[pull request template](PULL_REQUEST_TEMPLATE/pull_request_template.md). You
will find a checklist of items to complete before submitting a pull request.
Please make sure you complete it before submitting a pull request. If you are
unsure about any of the items, please ask.
### Guidelines
We provide instructions on a healthy contribution to neovim-flake - including styling, commit formats, how-to guides for adding new modules and options.
You are very well recommended to read the contributing guideliner over at [the documentation](https://notashelf.github.io/neovim-flake#hacking)
We provide instructions on a healthy contribution to neovim-flake - including
styling, commit formats, how-to guides for adding new modules and options. You
are very well recommended to read the contributing guidelines over at
[the documentation](https://notashelf.github.io/nvf#hacking)
### Code of Conduct
This project does not quite have a code of conduct yet. And to be honest, I'm not sure if I want one or if it will ever have one. I'm not expecting this project to be a hotbed of activity, but I do want to make sure that everyone who does contribute feels welcome and safe. As such, I will do my best to make sure that those who distrupt the project are dealt with swiftly and appropriately.
This project does not quite have a code of conduct yet. And to be perfectly
honest, I'm not sure if I want one or if it will ever have one. I'm not
expecting this project to be a hotbed of activity, but I do want to make sure
that everyone who does contribute feels welcome and safe. As such, I will do my
best to make sure that those who distrupt the project are dealt with swiftly and
appropriately.
If you feel that you are not being treated with respect, please contact me directly.
If you feel that you are not being treated with respect, please contact me
directly.

View file

@ -6,7 +6,7 @@ or dependency in this section.
If your pull request aims to fix an open issue or a please bug, please also link the relevant issue
below this line. You may attach an issue to your pull request with `Fixes #<issue number>` outside
this comment.
this comment, and it will be closed when your pull request is merged.
-->
## Sanity Checking
@ -23,20 +23,20 @@ it above in your description.
[editorconfig]: https://editorconfig.org
[changelog]: https://github.com/NotAShelf/nvf/tree/main/docs/release-notes
- [ ] I have updated the [changelog] as per my changes.
- [ ] I have tested, and self-reviewed my code.
- [ ] I have updated the [changelog] as per my changes
- [ ] I have tested, and self-reviewed my code
- Style and consistency
- [ ] I ran **Alejandra** to format my code (`nix fmt`).
- [ ] My code conforms to the [editorconfig] configuration of the project.
- [ ] My changes are consistent with the rest of the codebase.
- [ ] I ran **Alejandra** to format my code (`nix fmt`)
- [ ] My code conforms to the [editorconfig] configuration of the project
- [ ] My changes are consistent with the rest of the codebase
- If new changes are particularly complex:
- [ ] My code includes comments in particularly complex areas
- [ ] I have added a section in the manual.
- [ ] _(For breaking changes)_ I have included a migration guide.
- [ ] I have added a section in the manual
- [ ] _(For breaking changes)_ I have included a migration guide
- Package(s) built:
- [ ] `.#nix` (default package)
- [ ] `.#maximal`
- [ ] `.#docs-html`
- [ ] `.#docs-html` (manual, must build)
- Tested on platform(s)
- [ ] `x86_64-linux`
- [ ] `aarch64-linux`

2
.github/typos.toml vendored Normal file
View file

@ -0,0 +1,2 @@
default.extend-ignore-words-re = ["(?i)(noice)", "befores", "annote", "viw"]

View file

@ -23,8 +23,8 @@ jobs:
uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- uses: actions/checkout@v4
name: Checkout
- name: Checkout
uses: actions/checkout@v4
- name: Set default git branch (to reduce log spam)
run: git config --global init.defaultBranch main
@ -42,17 +42,16 @@ jobs:
with:
name: "${{ matrix.package }}"
path: result/share/doc/nvf
flake-docs-linkcheck:
name: Validate hyperlinks in documentation sources
runs-on: ubuntu-latest
steps:
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
flake-docs-linkcheck:
name: Validate hyperlinks in documentation sources
runs-on: ubuntu-latest
steps:
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Checkout
uses: actions/checkout@v4
- uses: actions/checkout@v4
name: Checkout
- name: Build documentation packages
run: nix build .#docs-linkcheck -Lv
- name: Build documentation packages
run: nix build .#docs-linkcheck -Lv

View file

@ -15,7 +15,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api \
repos/notashelf/neovim-flake/pulls/${{github.event.number}}/files --paginate \
repos/notashelf/nvf/pulls/${{github.event.number}}/files --paginate \
| jq '.[] | select(.status != "removed") | .filename' \
> "$HOME/changed_files"

30
.github/workflows/typos.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: "Check for typos in the source tree"
permissions: read-all
on:
pull_request:
workflow_dispatch:
push:
jobs:
check-typos:
runs-on: ubuntu-latest
if: "!contains(github.event.pull_request.title, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check for typos
uses: crate-ci/typos@master
with:
config: .github/typos.toml
- name: Fail Gracefully
if: ${{ failure() }}
shell: bash
run: |
echo "::error:: Current codebase contains typos that were caught by the CI!"
echo "If those typos were intentional, please add them to the ignored regexes in .github/typos.toml"
echo "[skip ci] label may be used if this is a one-time issue"
exit 1

View file

@ -3,6 +3,7 @@
```{=include=} chapters
configuring/custom-package.md
configuring/custom-plugins.md
configuring/custom-inputs.md
configuring/languages.md
configuring/dags.md
configuring/dag-entries.md

View file

@ -0,0 +1,53 @@
# Custom Inputs {#ch-custom-inputs}
One of the greatest strengths of **nvf** is its ability to get plugins from
flake inputs and build them locally from any given source. For plugins that do
not require any kind of additional building step, this is a powerful method of
adding plugins to your configuration that are not packaged in nixpkgs, or those
you want to track from source without relying on nixpkgs.
The [additional plugins section](#sec-additional-plugins) details the addition
of new plugins to nvf under regular circumstances, i.e. while making a pull
request to the project. You may _override_ those plugin inputs in your own
`flake.nix` to change source versions, e.g., to use newer versions of plugins
that are not yet updated in **nvf**.
```nix
{
inputs = {
# ...
# The name here is arbitrary, you can name it whatever.
# This will add a plugin input called "your-neodev-input"
# that you can reference in a `follows` line.
your-neodev-input = {
url = "github:folke/neodev.nvim";
flake = false;
};
nvf = {
url = "github:notashelf/nvf";
# The name of the input must match for the follows line
# plugin-neodev-nvim is what the input is called inside nvf
# so you must match the exact name here.
inputs.plugin-neodev-nvim.follows = "your-neodev-input";
};
# ...
};
}
```
This will override the source for the `neodev.nvim` plugin that is used in nvf
with your own input. You can update your new input via `nix flake update` or
more specifically `nix flake update <name of your input>` to keep it up to date.
::: {.warning}
While updating plugin inputs, make sure that any configuration that has been
deprecated in newer versions is changed in the plugin's `setupOpts`. If you
depend on a new version, requesting a version bump in the issues section is a
more reliable option.
:::

View file

@ -11,11 +11,11 @@ configuration locally.
There are multiple ways of adding custom plugins to your **nvf** configuration.
You can use custom plugins, before they are implemented in the flake. To add a
plugin to the runtime, you need to add it to the `vim.startPlugins` list in your
configuration.
plugin to the runtime, you need to add it to the [](#opt-vim.startPlugins) list
in your configuration.
Adding a plugin to `startPlugins` will not allow you to configure the plugin
that you have adeed, but **nvf** provides multiple way of configuring any custom
that you have added, but **nvf** provides multiple way of configuring any custom
plugins that you might have added to your configuration.
```{=include=} sections

View file

@ -4,12 +4,12 @@ You, naturally, would like to start by forking the repository to get started. If
you are new to Git and GitHub, do have a look at GitHub's
[Fork a repo guide](https://help.github.com/articles/fork-a-repo/) for
instructions on how you can do this. Once you have a fork of **nvf**, you should
create a separate branch based on the msot recent `main` branch. Give your
create a separate branch based on the most recent `main` branch. Give your
branch a reasonably descriptive name (e.g. `feature/debugger` or
`fix/pesky-bug`) and you are ready to work on your changes
Implement your changes and commit them to the newly created branch and when you
are happy with the result, and positive that it fullfills our
are happy with the result, and positive that it fulfills our
[Contributing Guidelines](#sec-guidelines), push the branch to GitHub and
[create a pull request](https://help.github.com/articles/creating-a-pull-request).
The default pull request template available on the **nvf** repository will guide

View file

@ -93,10 +93,10 @@ the commit followed by the description:
```
languages/ruby: init module
Adds a language module for Ruby, adds appropriate formatters and Treesitter grammers
Adds a language module for Ruby, adds appropriate formatters and Treesitter grammars
```
Long description can be ommitted if the change is too simple to warrant it. A
Long description can be omitted if the change is too simple to warrant it. A
minor fix in spelling or a formatting change does not warrant long description,
however, a module addition or removal does as you would like to provide the
relevant context, i.e. the reasoning behind it, for your commit.

View file

@ -1,13 +1,13 @@
# Testing Changes {#sec-testing-changes}
Once you have made your changes, you will need to test them throughly. If it is
Once you have made your changes, you will need to test them thoroughly. If it is
a module, add your module option to `configuration.nix` (located in the root of
this project) inside `neovimConfiguration`. Enable it, and then run the maximal
configuration with `nix run .#maximal -Lv` to check for build errors. If neovim
opens in the current directory without any error messages (you can check the
output of `:messages` inside neovim to see if there are any errors), then your
changes are good to go. Open your pull request, and it will be reviewed as soon
as posssible.
as possible.
If it is not a new module, but a change to an existing one, then make sure the
module you have changed is enabled in the maximal configuration by editing

View file

@ -11,7 +11,7 @@ your formatting according to its own config (usually `.eslintrc.js`).
The issue there is your formatting is made via prettierd.
This results in auto-formating relying on your prettier config, while your
This results in auto-formatting relying on your prettier config, while your
eslint config diagnoses formatting
[which it's not supposed to](https://prettier.io/docs/en/comparison.html))

View file

@ -21,7 +21,7 @@ soon.
- which-key section titles have been fixed. This is to be changed once again in
a possible keybind rewrite, but now it should display the correct titles
instad of `+prefix`
instead of `+prefix`
- Most of `presence.nvim`'s options have been made fully configurable through
your configuration file.

View file

@ -61,9 +61,9 @@ Release notes for release 0.5
- LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically
enabled if navic is enabled)
- Addeed nvim-navic integration for catppuccin theme
- Added nvim-navic integration for Catppuccin theme
- Fixed mismatching zig language description
- Fixed mismatching Zig language description
- Added support for `statix` and `deadnix` through
[](#opt-vim.languages.nix.extraDiagnostics.types)
@ -79,9 +79,9 @@ Release notes for release 0.5
- Added bash LSP and formatter support
- Disabled Lualine LSP status indicator for toggleterm buffer
- Disabled Lualine LSP status indicator for Toggleterm buffer
- Added `nvim-docs-view`, a plugin to display lsp hover documentation in a side
- Added `nvim-docs-view`, a plugin to display LSP hover documentation in a side
panel
- Switched to `nixosOptionsDoc` in option documentation. To quote home-manager
@ -107,7 +107,7 @@ Release notes for release 0.5
- Removed redundant "Enable ..." in `mkEnableOption` descriptions
- Add options to modify LSP key bindings and add proper whichkey descriptions
- Add options to modify LSP key bindings and add proper which-key descriptions
- Changed type of `statusline.lualine.activeSection` and
`statusline.lualine.inactiveSection` from `attrsOf str` to

View file

@ -301,7 +301,7 @@ To migrate to `nixfmt`, simply change `vim.languages.nix.format.type` to
[Soliprem](https://github.com/Soliprem):
- Add LSP and Treesitter support for R under `vim.languages.R`.
- Add formatter suppoort for R, with styler and formatR as options
- Add formatter support for R, with styler and formatR as options
- Add Otter support under `vim.lsp.otter` and an assert to prevent conflict with
ccc
- Fixed typo in Otter's setupOpts

View file

@ -4,7 +4,7 @@
inherit (lib.nvim.types) mkPluginSetupOption;
in {
imports = [
(mkRemovedOptionModule ["vim" "autopairs" "nvim-compe"] "nvim-compe is deprecated and no longer suported.")
(mkRemovedOptionModule ["vim" "autopairs" "nvim-compe"] "nvim-compe is deprecated and no longer supported.")
];
options.vim.autopairs.nvim-autopairs = {

View file

@ -48,7 +48,7 @@ in {
A `deprio` function and a `kinds`
(`require("cmp.types").lsp.CompletionItemKind`) variable is provided
above `setupOpts`. By passing a type to the funcion, the returned
above `setupOpts`. By passing a type to the function, the returned
function will be a comparator that always ranks the specified kind the
lowest.
'';
@ -88,7 +88,7 @@ in {
```
'';
description = ''
The function used to customize the completion menu entires. This is
The function used to customize the completion menu entries. This is
outside of `setupOpts` to allow for an easier integration with
lspkind.nvim.

View file

@ -101,7 +101,7 @@ in {
customIndices = mkOption {
default = [];
description = "Specify a list of default charecters to use instead of numbers";
description = "Specify a list of default characters to use instead of numbers";
type = listOf str;
};

View file

@ -26,7 +26,7 @@ in {
};
mappings = {
continue = mkMappingOption "Contiue" "<leader>dc";
continue = mkMappingOption "Continue" "<leader>dc";
restart = mkMappingOption "Restart" "<leader>dR";
terminate = mkMappingOption "Terminate" "<leader>dq";
runLast = mkMappingOption "Re-run Last Debug Session" "<leader>d.";

View file

@ -32,7 +32,7 @@ in {
(entryAnywhere ''
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("load_neo_tree", {}),
desc = "Loads neo-tree when openning a directory",
desc = "Loads neo-tree when opening a directory",
callback = function(args)
local stats = vim.uv.fs_stat(args.file)

View file

@ -46,7 +46,7 @@ in {
${optionalString (config.vim.lazy.enable && cfg.setupOpts.hijack_netrw && !cfg.openOnSetup) ''
vim.api.nvim_create_autocmd("BufEnter", {
group = vim.api.nvim_create_augroup("load_nvim_tree", {}),
desc = "Loads nvim-tree when openning a directory",
desc = "Loads nvim-tree when opening a directory",
callback = function(args)
local stats = vim.uv.fs_stat(args.file)

View file

@ -89,7 +89,7 @@ in {
};
package = mkOption {
description = "lldb pacakge";
description = "lldb package";
type = package;
default = pkgs.lldb;
};

View file

@ -22,7 +22,7 @@ in {
default_timeout = mkOption {
type = int;
default = 5000;
description = "Default timeout value, in miliseconds";
description = "Default timeout value, in milliseconds";
};
sources = mkOption {

View file

@ -31,7 +31,7 @@ in {
description = ''
if set to true, the filetype of the otterbuffers will be set. Other wide only
the autocommand of lspconfig that attaches the language server will be
executed without stting the filetype
executed without setting the filetype
'';
};
write_to_disk = mkOption {

View file

@ -12,7 +12,7 @@ in {
migration is required.
Please see neocord documentation and options page on the **nvf** manual
for mor einformation
for more information
'')
]
++ (map

View file

@ -105,7 +105,7 @@ in {
autosave_ignore_buftypes = mkOption {
type = types.listOf types.str;
default = [];
description = "All buffers of these bufer types will be closed before the session is saved";
description = "All buffers of these buffer types will be closed before the session is saved";
};
autosave_only_in_session = mkOption {

View file

@ -49,7 +49,7 @@ in {
type = bool;
default = true;
description = ''
Whether or not to allow highlight groups to be overriden.
Whether or not to allow highlight groups to be overridden.
While false, bufferline.nvim sets highlights as default.
'';
@ -101,7 +101,7 @@ in {
The indicatotor icon to use for the current buffer.
::: {.warning}
This **must** be ommitted while style is not `icon`
This **must** be omitted while style is not `icon`
:::
'';
};
@ -338,17 +338,6 @@ in {
description = "Whether or not the move command \"wraps\" at the first or last position";
};
seperator_style = mkOption {
type = either (enum ["thick" "thin" "slope" "slant"]) (listOf str);
default = [" " " "];
description = ''
Style of the buffer separator.
Can be either one of the suspported values, or a list containing
**at most** two elements for `focused` and `unfocused` respectively.
'';
};
separator_style = mkOption {
type = nullOr (either (enum ["slant" "padded_slant" "slope" "padded_slope" "thick" "thin"]) (listOf str));
default = "thin";

View file

@ -10,7 +10,7 @@
multilineThreshold = "multiline_threshold";
trimScope = "trim_scope";
mode = "mode";
seperator = "separator";
separator = "separator";
zindex = "z_index";
};

View file

@ -4,7 +4,7 @@
in {
options.vim.utility.motion.hop = {
mappings = {
hop = mkMappingOption "Jump to occurences [hop.nvim]" "<leader>h";
hop = mkMappingOption "Jump to occurrences [hop.nvim]" "<leader>h";
};
enable = mkEnableOption "Hop.nvim plugin (easy motion)";

View file

@ -134,7 +134,7 @@
default = ["absolute"];
};
set_env = mkOption {
description = "Set an envrionment for term_previewer";
description = "Set an environment for term_previewer";
type = attrsOf str;
default = {
COLORTERM = "truecolor";

View file

@ -62,7 +62,7 @@
if spec.load != null
then
mkLuaInline ''
funcion()
function()
${spec.load}
end
''

View file

@ -92,7 +92,7 @@ in {
::: {.warning}
All paths passed to this option must be valid. If Neovim cannot
resolve the path you are attempting to sourcee, then your configuration
resolve the path you are attempting to source, then your configuration
will error, and Neovim will not start. Please ensure that all paths
are correct before using this option.
:::