···1+# Neovim {#neovim}
2+3+Install `neovim-unwrapped` to get a barebone neovim to configure imperatively.
4+Neovim can be configured to include your favorite plugins and additional libraries by installing `neovim` instead.
5+See the next section for more details.
6+7+## Custom configuration {#neovim-custom-configuration}
8+9+For Neovim the `configure` argument can be overridden to achieve the same:
10+11+```nix
12+neovim.override {
13+ configure = {
14+ customRC = ''
15+ # here your custom configuration goes!
16+ '';
17+ };
18+}
19+```
20+21+If you want to use `neovim-qt` as a graphical editor, you can configure it by overriding Neovim in an overlay
22+or passing it an overridden Neovim:
23+24+```nix
25+neovim-qt.override {
26+ neovim = neovim.override {
27+ configure = {
28+ customRC = ''
29+ # your custom configuration
30+ '';
31+ };
32+ };
33+}
34+```
35+36+### Specificities for some plugins {#neovim-plugin-specificities}
37+#### Treesitter {#neovim-plugin-treesitter}
38+39+By default `nvim-treesitter` encourages you to download, compile and install
40+the required Treesitter grammars at run time with `:TSInstall`. This works
41+poorly on NixOS. Instead, to install the `nvim-treesitter` plugins with a set
42+of precompiled grammars, you can use the `nvim-treesitter.withPlugins` function:
43+44+```nix
45+(pkgs.neovim.override {
46+ configure = {
47+ packages.myPlugins = with pkgs.vimPlugins; {
48+ start = [
49+ (nvim-treesitter.withPlugins (
50+ plugins: with plugins; [
51+ nix
52+ python
53+ ]
54+ ))
55+ ];
56+ };
57+ };
58+})
59+```
60+61+To enable all grammars packaged in nixpkgs, use `pkgs.vimPlugins.nvim-treesitter.withAllGrammars`.
62+63+64+### Testing Neovim plugins {#testing-neovim-plugins}
65+66+#### neovimRequireCheck {#testing-neovim-plugins-neovim-require-check}
67+`neovimRequireCheck` is a simple test which checks if Neovim can requires lua modules without errors. This is often enough to catch missing dependencies.
68+69+It accepts a single string for a module, or a list of module strings to test.
70+- `nvimRequireCheck = MODULE;`
71+- `nvimRequireCheck = [ MODULE1 MODULE2 ];`
72+73+When `nvimRequireCheck` is not specified, we will search the plugin's directory for lua modules to attempt loading. This quick smoke test can catch obvious dependency errors that might be missed.
74+The check hook will fail the build if any modules cannot be loaded. This encourages inspecting the logs to identify potential issues.
75+76+To only check a specific module, add it manually to the plugin definition [overrides](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
77+78+```nix
79+ gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
80+ dependencies = [ self.plenary-nvim ];
81+ nvimRequireCheck = "gitsigns";
82+ };
83+```
84+Some plugins will have lua modules that require a user configuration to function properly or can contain optional lua modules that we dont want to test requiring.
85+We can skip specific modules using `nvimSkipModule`. Similar to `nvimRequireCheck`, it accepts a single string or a list of strings.
86+- `nvimSkipModule = MODULE;`
87+- `nvimSkipModule = [ MODULE1 MODULE2 ];`
88+89+```nix
90+ asyncrun-vim = super.asyncrun-vim.overrideAttrs {
91+ nvimSkipModule = [
92+ # vim plugin with optional toggleterm integration
93+ "asyncrun.toggleterm"
94+ "asyncrun.toggleterm2"
95+ ];
96+ };
97+```
98+99+In rare cases, we might not want to actually test loading lua modules for a plugin. In those cases, we can disable `neovimRequireCheck` with `doCheck = false;`.
100+101+This can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
102+```nix
103+ vim-test = super.vim-test.overrideAttrs {
104+ # Vim plugin with a test lua file
105+ doCheck = false;
106+ };
107+```
+2-100
doc/languages-frameworks/vim.section.md
···1# Vim {#vim}
23-Both Neovim and Vim can be configured to include your favorite plugins
4-and additional libraries.
56Loading can be deferred; see examples.
7···19and both the `vim` and `vim-full` packages can be customized as explained in the next section.
20:::
2122-## Custom configuration {#custom-configuration}
2324Adding custom .vimrc lines can be done using the following code:
25···39[definition of `vimUtils.makeCustomizable`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-utils.nix#L408)
40for all supported options.
4142-For Neovim the `configure` argument can be overridden to achieve the same:
43-44-```nix
45-neovim.override {
46- configure = {
47- customRC = ''
48- # here your custom configuration goes!
49- '';
50- };
51-}
52-```
53-54-If you want to use `neovim-qt` as a graphical editor, you can configure it by overriding Neovim in an overlay
55-or passing it an overridden Neovim:
56-57-```nix
58-neovim-qt.override {
59- neovim = neovim.override {
60- configure = {
61- customRC = ''
62- # your custom configuration
63- '';
64- };
65- };
66-}
67-```
6869## Managing plugins with Vim packages {#managing-plugins-with-vim-packages}
70···166167If your package requires building specific parts, use instead `pkgs.vimUtils.buildVimPlugin`.
168169-### Specificities for some plugins {#vim-plugin-specificities}
170-#### Treesitter {#vim-plugin-treesitter}
171-172-By default `nvim-treesitter` encourages you to download, compile and install
173-the required Treesitter grammars at run time with `:TSInstall`. This works
174-poorly on NixOS. Instead, to install the `nvim-treesitter` plugins with a set
175-of precompiled grammars, you can use `nvim-treesitter.withPlugins` function:
176-177-```nix
178-(pkgs.neovim.override {
179- configure = {
180- packages.myPlugins = with pkgs.vimPlugins; {
181- start = [
182- (nvim-treesitter.withPlugins (
183- plugins: with plugins; [
184- nix
185- python
186- ]
187- ))
188- ];
189- };
190- };
191-})
192-```
193-194-To enable all grammars packaged in nixpkgs, use `pkgs.vimPlugins.nvim-treesitter.withAllGrammars`.
195-196## Managing plugins with vim-plug {#managing-plugins-with-vim-plug}
197198To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim
···232233Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `vimPluginsUpdater` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of the Language Server Protocol integration with Vim/Neovim.
234235-### Testing Neovim plugins {#testing-neovim-plugins}
236-237-#### neovimRequireCheck {#testing-neovim-plugins-neovim-require-check}
238-`neovimRequireCheck` is a simple test which checks if Neovim can requires lua modules without errors. This is often enough to catch missing dependencies.
239-240-It accepts a single string for a module, or a list of module strings to test.
241-- `nvimRequireCheck = MODULE;`
242-- `nvimRequireCheck = [ MODULE1 MODULE2 ];`
243-244-When `nvimRequireCheck` is not specified, we will search the plugin's directory for lua modules to attempt loading. This quick smoke test can catch obvious dependency errors that might be missed.
245-The check hook will fail the build if any failures are detected to encourage inspecting the logs to identify potential issues.
246-247-If you would like to only check a specific module, this can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
248-249-```nix
250- gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
251- dependencies = [ self.plenary-nvim ];
252- nvimRequireCheck = "gitsigns";
253- };
254-```
255-Some plugins will have lua modules that require a user configuration to function properly or can contain optional lua modules that we dont want to test requiring.
256-We can skip specific modules using `nvimSkipModule`. Similar to `nvimRequireCheck`, it accepts a single string or a list of strings.
257-- `nvimSkipModule = MODULE;`
258-- `nvimSkipModule = [ MODULE1 MODULE2 ];`
259-260-```nix
261- asyncrun-vim = super.asyncrun-vim.overrideAttrs {
262- nvimSkipModule = [
263- # vim plugin with optional toggleterm integration
264- "asyncrun.toggleterm"
265- "asyncrun.toggleterm2"
266- ];
267- };
268-```
269-270-In rare cases, we might not want to actually test loading lua modules for a plugin. In those cases, we can disable `neovimRequireCheck` with `doCheck = false;`.
271-272-This can be manually added through plugin definition overrides in the [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix).
273-```nix
274- vim-test = super.vim-test.overrideAttrs {
275- # Vim plugin with a test lua file
276- doCheck = false;
277- };
278-```
279280### Plugin optional configuration {#vim-plugin-required-snippet}
281
···1# Vim {#vim}
23+Vim can be configured to include your favorite plugins and additional libraries.
045Loading can be deferred; see examples.
6···18and both the `vim` and `vim-full` packages can be customized as explained in the next section.
19:::
2021+## Custom configuration {#vim-custom-configuration}
2223Adding custom .vimrc lines can be done using the following code:
24···38[definition of `vimUtils.makeCustomizable`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-utils.nix#L408)
39for all supported options.
40000000000000000000000000004142## Managing plugins with Vim packages {#managing-plugins-with-vim-packages}
43···139140If your package requires building specific parts, use instead `pkgs.vimUtils.buildVimPlugin`.
141000000000000000000000000000142## Managing plugins with vim-plug {#managing-plugins-with-vim-plug}
143144To use [vim-plug](https://github.com/junegunn/vim-plug) to manage your Vim
···178179Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `vimPluginsUpdater` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of the Language Server Protocol integration with Vim/Neovim.
18000000000000000000000000000000000000000000000181182### Plugin optional configuration {#vim-plugin-required-snippet}
183
···4950- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable)
510052- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
5354- [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
···171- `nodePackages.webpack-dev-server` has been removed, as it should be installed in projects that use it instead.
172173- `nodePackages.copy-webpack-plugin` has been removed, as it should be installed in projects that use it instead.
00174175- `linuxPackages.nvidiaPackages.dc_520` has been removed since it is marked broken and there are better newer alternatives.
176
···4950- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable)
5152+- [ytdl-sub](https://github.com/jmbannon/ytdl-sub), a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as [services.ytdl-sub](options.html#opt-services.ytdl-sub.instances).
53+54- [MaryTTS](https://github.com/marytts/marytts), an open-source, multilingual text-to-speech synthesis system written in pure Java. Available as [services.marytts](options.html#opt-services.marytts).
5556- [networking.modemmanager](options.html#opt-networking.modemmanager) has been split out of [networking.networkmanager](options.html#opt-networking.networkmanager). NetworkManager still enables ModemManager by default, but options exist now to run NetworkManager without ModemManager.
···173- `nodePackages.webpack-dev-server` has been removed, as it should be installed in projects that use it instead.
174175- `nodePackages.copy-webpack-plugin` has been removed, as it should be installed in projects that use it instead.
176+177+- `himalaya` has been updated from `v1.0.0-beta.4` to `v1.1.0`, which introduces breaking changes. Check out the [release notes](https://github.com/pimalaya/himalaya/releases) for details.
178179- `linuxPackages.nvidiaPackages.dc_520` has been removed since it is marked broken and there are better newer alternatives.
180
···72 inherit avante-nvim-lib;
73 };
7475- doInstallCheck = true;
76- nvimRequireCheck = "avante";
0007778 meta = {
79 description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
···72 inherit avante-nvim-lib;
73 };
7475+ nvimSkipModule = [
76+ # Requires setup with corresponding provider
77+ "avante.providers.azure"
78+ "avante.providers.copilot"
79+ ];
8081 meta = {
82 description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
···6}:
7let
8 pname = "lmstudio";
9- version = "0.3.5";
10- rev = "2";
11 meta = {
12 description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
13 homepage = "https://lmstudio.ai/";
···6}:
7let
8 pname = "lmstudio";
9+ version = "0.3.6";
10+ rev = "8";
11 meta = {
12 description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
13 homepage = "https://lmstudio.ai/";
···1-{
2- lib,
3- buildPythonPackage,
4- fetchPypi,
5- pytestCheckHook,
6- docopt,
7- six,
8- wcwidth,
9- pygments,
10-}:
11-12-buildPythonPackage rec {
13- pname = "prompt-toolkit";
14- version = "1.0.18";
15-16- src = fetchPypi {
17- pname = "prompt_toolkit";
18- inherit version;
19- sha256 = "dd4fca02c8069497ad931a2d09914c6b0d1b50151ce876bc15bde4c747090126";
20- };
21-22- propagatedBuildInputs = [
23- docopt
24- six
25- wcwidth
26- pygments
27- ];
28-29- nativeCheckInputs = [ pytestCheckHook ];
30-31- disabledTests = [ "test_pathcompleter_can_expanduser" ];
32-33- meta = with lib; {
34- description = "Python library for building powerful interactive command lines";
35- longDescription = ''
36- prompt_toolkit could be a replacement for readline, but it can be
37- much more than that. It is cross-platform, everything that you build
38- with it should run fine on both Unix and Windows systems. Also ships
39- with a nice interactive Python shell (called ptpython) built on top.
40- '';
41- homepage = "https://github.com/jonathanslenders/python-prompt-toolkit";
42- maintainers = [ ];
43- license = licenses.bsd3;
44- };
45-}