diff --git a/.github/README.md b/.github/README.md
index 1c3e22c3..06c9eb7d 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -33,9 +33,10 @@
-[Features]: #features
[Get Started]: #get-started
[Documentation]: #documentation
[Help]: #help
@@ -51,150 +51,119 @@
[FAQ]: #faq
[Credits]: #credits
-**[
Features
][Features]**
-**[
Get Started
][Get Started]**
-**[
Documentation
][Documentation]**
-**[
Help
][Help]**
-**[
Contribute
][Contribute]**
-**[
FAQ
][Faq]** **[
Credits
][Credits]**
+**[
Get Started
][Get Started]**
+**[
Documentation
][Documentation]**
+**[
Help
][Help]**
+**[
Contribute
][Contribute]**
+**[
FAQ
][Faq]**
+**[
Credits
][Credits]**
---
-## Features
-
-- **Reproducible**: Your configuration will behave the same _anywhere_. No
- surprises, promise!
-- **Portable**: nvf depends _solely_ on your Nix store, and nothing else. No
- more global binaries! Works on all platforms, without hassle.
-- **Customizable**: There are _almost no defaults_ to annoy you. nvf is fully
- customizable through the Nix module system.
-- **Well-documented**: Documentation is priority. You will _never_ face
- undocumented, obscure behaviour.
-- **Idiomatic**: nvf does things ✨ _the right way_ ✨ - the codebase is, and
- will, remain maintainable for myself and any contributors.
-
## Get Started
-[nvf manual]: https://notashelf.github.io/nvf/
-[issue tracker]: https://github.com/NotAShelf/nvf/issues
+### Using `nix` CLI
-If you are not sold on the concepts of **nvf**, and would like to try out the
-default configuration before even _thinking about_ installing it, you may run
-the following in order to take **nvf** out for a spin.
+If you would like to try out the configuration before even thinking about
+installing it, you can run the following command
-```bash
-# Run the default package
+```console
nix run github:notashelf/nvf
```
-This will get you a feel for the base configuration and UI design. Though, none
-of the configuration options are final as **nvf** is designed to be modular and
-configurable.
+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.
-> [!TIP]
-> The flake exposes `#nix` as the default package, providing minimal language
-> support and various utilities. You may also use the `#nix` or `#maximal`
-> packages provided by the this flake 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 large language coverage, run:
-
-```bash
-# Run the maximal package
-nix run github:notashelf/nvf#maximal
+```console
+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.
-> [!NOTE]
-> The `maximal` configuration is quite large, and might take a while to build.
-> To get a feel for the configuration, use the default `nix` configuration.
-> Should you choose to try out the `maximal` configuration, using the binary
-> cache as described in the manual is _strongly_ recommended.
-
-If you are convinced, proceed to the next section to view the installation
-instructions.
+> [!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.
## Documentation
-The _recommended_ way of installing **nvf** is using either the NixOS or the
-Home-Manager module, though it is completely possible and no less supported to
-install **nvf** as a standalone package, or a flake output.
+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.
-See the [**nvf** manual] for detailed and up-to-date 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 **nvf** you can get a fully
+featured configuration with `nix` language support by running:
-Please create an issue on the [issue tracker] if you find the documentation
-lacking or confusing. Any improvements to the documentation through pull
-requests are also welcome, and appreciated.
+```console
+nix run github:notashelf/nvf#nix
+```
+
+[Issues]: https://github.com/NotAShelf/nvf/issues
+
+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] 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]
-before submitting a pull request if you would like to discuss a feature or bug
-fix.
+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
-[appropriate issue template]: https://github.com/NotAShelf/nvf/issues/new/choose
-[list of branches]: https://github.com/NotAShelf/nvf/branches
-[list of open pull requests]: https://github.com/NotAShelf/nvf/pulls
-
-**Q**: What platforms are supported?
-
diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml
deleted file mode 100644
index 204dcba7..00000000
--- a/.github/workflows/cleanup.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Cleanup
-on:
- workflow_dispatch:
- schedule:
- - cron: "0 4 1 * *" # 4AM on 1st of every month
- - cron: "0 4 15 * *" # 4AM on the 15th of every month
-jobs:
- branches:
- name: Cleanup old branches
- runs-on: ubuntu-latest
- steps:
- - name: "Checkout"
- uses: actions/checkout@v4
-
- - name: "Delete old branches"
- uses: beatlabs/delete-old-branches-action@v0.0.10
- with:
- repo_token: "${{ secrets.GITHUB_TOKEN }}"
- date: "1 months ago"
- dry_run: false
- delete_tags: false
- exclude_open_pr_branches: true
diff --git a/configuration.nix b/configuration.nix
index b21b26aa..08b0f9b6 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -19,7 +19,6 @@ isMaximal: {
lspsaga.enable = false;
trouble.enable = true;
lspSignature.enable = true;
- otter-nvim.enable = isMaximal;
lsplines.enable = isMaximal;
nvim-docs-view.enable = isMaximal;
};
@@ -156,7 +155,7 @@ isMaximal: {
};
utility = {
- ccc.enable = false;
+ ccc.enable = isMaximal;
vim-wakatime.enable = false;
icon-picker.enable = isMaximal;
surround.enable = isMaximal;
diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md
index 55746f2b..d93bb2c6 100644
--- a/docs/release-notes/rl-0.7.md
+++ b/docs/release-notes/rl-0.7.md
@@ -202,5 +202,3 @@ everyone.
[Soliprem](https://github.com/Soliprem)
- Add LSP and Treesitter support for R under `vim.languages.R`.
-- Add Otter support under `vim.lsp.otter` and an assert to prevent conflict with
- ccc
diff --git a/flake.lock b/flake.lock
index ecc02f27..91fc5060 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1373,22 +1373,6 @@
"type": "github"
}
},
- "plugin-otter-nvim": {
- "flake": false,
- "locked": {
- "lastModified": 1724585935,
- "narHash": "sha256-euHwoK2WHLF/hrjLY2P4yGrIbYyBN38FL3q4CKNZmLY=",
- "owner": "jmbuhr",
- "repo": "otter.nvim",
- "rev": "ca9ce67d0399380b659923381b58d174344c9ee7",
- "type": "github"
- },
- "original": {
- "owner": "jmbuhr",
- "repo": "otter.nvim",
- "type": "github"
- }
- },
"plugin-oxocarbon": {
"flake": false,
"locked": {
@@ -1877,7 +1861,6 @@
"plugin-obsidian-nvim": "plugin-obsidian-nvim",
"plugin-onedark": "plugin-onedark",
"plugin-orgmode-nvim": "plugin-orgmode-nvim",
- "plugin-otter-nvim": "plugin-otter-nvim",
"plugin-oxocarbon": "plugin-oxocarbon",
"plugin-plenary-nvim": "plugin-plenary-nvim",
"plugin-project-nvim": "plugin-project-nvim",
diff --git a/flake.nix b/flake.nix
index 987e3e59..c4996fcf 100644
--- a/flake.nix
+++ b/flake.nix
@@ -13,8 +13,8 @@
inherit inputs;
specialArgs = {inherit lib;};
} {
- # Allow users to bring their own systems.
- # «https://github.com/nix-systems/nix-systems»
+ # provide overridable systems
+ # https://github.com/nix-systems/nix-systems
systems = import inputs.systems;
imports = [
./flake/apps.nix
@@ -62,6 +62,7 @@
pkgs,
...
}: {
+ formatter = pkgs.alejandra;
devShells = {
default = self'.devShells.lsp;
nvim-nix = pkgs.mkShell {packages = [config.packages.nix];};
@@ -69,21 +70,6 @@
packages = with pkgs; [nil statix deadnix alejandra];
};
};
-
- # Provide the default formatter. `nix fmt` in project root
- # will format available files with the correct formatter.
- # P.S: Please do not format with nixfmt! It messes with many
- # syntax elements and results in unreadable code.
- formatter = pkgs.alejandra;
-
- # Check if codebase is properly formatted.
- # This can be initiated with `nix build .#checks.
.nix-fmt`
- # or with `nix flake check`
- checks = {
- nix-fmt = pkgs.runCommand "nix-fmt-check" {nativeBuildInputs = [pkgs.alejandra];} ''
- alejandra --check ${self} < /dev/null | tee $out
- '';
- };
};
};
@@ -170,11 +156,6 @@
flake = false;
};
- plugin-otter-nvim = {
- url = "github:jmbuhr/otter.nvim";
- flake = false;
- };
-
# Language support
plugin-sqls-nvim = {
url = "github:nanotee/sqls.nvim";
diff --git a/modules/plugins/languages/ts.nix b/modules/plugins/languages/ts.nix
index 5ceccecf..e6e718ed 100644
--- a/modules/plugins/languages/ts.nix
+++ b/modules/plugins/languages/ts.nix
@@ -226,7 +226,7 @@ in {
{
assertion = cfg.lsp.enable -> cfg.lsp.server != "tsserver";
message = ''
- As of a recent lspconfig update, the `tsserver` configuration has been renamed
+ As of a recent lspconfig update, he `tsserver` configuration has been renamed
to `ts_ls` to match upstream behaviour of `lspconfig`, and the name `tsserver`
is no longer considered valid by nvf. Please set `vim.languages.ts.lsp.server`
to `"ts_ls"` instead of to `${cfg.lsp.server}`
diff --git a/modules/plugins/lsp/default.nix b/modules/plugins/lsp/default.nix
index 421f5fda..a5d5163d 100644
--- a/modules/plugins/lsp/default.nix
+++ b/modules/plugins/lsp/default.nix
@@ -13,7 +13,6 @@
./trouble
./lsp-signature
./lightbulb
- ./otter
./lspkind
./lsplines
./nvim-docs-view
diff --git a/modules/plugins/lsp/otter/config.nix b/modules/plugins/lsp/otter/config.nix
deleted file mode 100644
index e5df92f7..00000000
--- a/modules/plugins/lsp/otter/config.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- inherit (lib.modules) mkIf mkMerge;
- inherit (lib.nvim.dag) entryAnywhere;
- inherit (lib.nvim.lua) toLuaObject;
- inherit (lib.nvim.binds) addDescriptionsToMappings mkSetBinding;
-
- cfg = config.vim.lsp;
-
- self = import ./otter.nix {inherit lib;};
- mappingDefinitions = self.options.vim.lsp.otter-nvim.mappings;
- mappings = addDescriptionsToMappings cfg.otter-nvim.mappings mappingDefinitions;
-in {
- config = mkIf (cfg.enable && cfg.otter-nvim.enable) {
- assertions = [
- {
- assertion = !config.vim.utility.ccc.enable;
- message = ''
- ccc and otter have a breaking conflict. It's been reported upstream. Until it's fixed, disable one of them
- '';
- }
- ];
- vim = {
- startPlugins = ["otter-nvim"];
-
- maps.normal = mkMerge [
- (mkSetBinding mappings.toggle "lua require'otter'.activate()")
- ];
-
- pluginRC.otter-nvim = entryAnywhere ''
- -- Enable otter diagnostics viewer
- require("otter").setup({${toLuaObject cfg.otter-nvim.setupOpts}})
- '';
- };
- };
-}
diff --git a/modules/plugins/lsp/otter/default.nix b/modules/plugins/lsp/otter/default.nix
deleted file mode 100644
index 935f1447..00000000
--- a/modules/plugins/lsp/otter/default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- imports = [
- ./otter.nix
- ./config.nix
- ];
-}
diff --git a/modules/plugins/lsp/otter/otter.nix b/modules/plugins/lsp/otter/otter.nix
deleted file mode 100644
index 79797aaf..00000000
--- a/modules/plugins/lsp/otter/otter.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{lib, ...}: let
- inherit (lib.options) mkOption mkEnableOption;
- inherit (lib.nvim.binds) mkMappingOption;
- inherit (lib.types) bool str listOf;
- inherit (lib.nvim.types) mkPluginSetupOption;
-in {
- options.vim.lsp = {
- otter-nvim = {
- enable = mkEnableOption ''
- lsp features and a code completion source for code embedded in other documents [otter-nvim]
- '';
- mappings = {
- toggle = mkMappingOption "Activate LSP on Cursor Position [otter-nvim]" "lo";
- };
- setupOpts = mkPluginSetupOption "otter.nvim" {
- lsp = {
- diagnostic_update_event = mkOption {
- type = listOf str;
- default = ["BufWritePost"];
- description = ''
- `:h events` that cause the diagnostic to update.
- Set to: {"BufWritePost", "InsertLeave", "TextChanged" }
- for less performant but more instant diagnostic updates
- '';
- };
- };
- buffers = {
- set_filetype = mkOption {
- type = bool;
- default = false;
- 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
- '';
- };
- write_to_disk = mkOption {
- type = bool;
- default = false;
- description = ''
- write .otter. files to disk on save of main buffer.
- Useful for some linters that require actual files.
- Otter files are deleted on quit or main buffer close
- '';
- };
- };
- strip_wrapping_quote_characters = mkOption {
- type = listOf str;
- default = ["'" ''"'' "`"];
- description = ''
- '';
- };
- handle_leading_whitespace = mkOption {
- type = bool;
- default = false;
- description = ''
- otter may not work the way you expect when entire code blocks are indented
- (eg. in Org files) When true, otter handles these cases fully.
- '';
- };
- };
- };
- };
-}