Commit graph

30 commits

Author SHA1 Message Date
Matthieu Coudron 8d3fe1366b
neovim: support different configuration languages (#2637)
Plugins now accept a "type" element describing the language (viml, lua
, teal, fennel, ...) in which
they are configured.

The configuration of the different plugins is aggregated per language
and made available as a key in the attribute set `programs.neovim.generatedConfigs`

For instance if you want to configure a lua package:

```
programs.neovim.plugins = [
{
plugin = packer-nvim;
type = "lua";
config = ''
    require('packer').init({
    luarocks = {
	python_cmd = 'python' -- Set the python command to use for running hererocks
    },
    })
'';
}
]
```
and you can save the generated lua config to a file via

```
  xdg.configFile = {
    "nvim/init.generated.lua".text = config.programs.neovim.generatedConfigs.lua;
  };
```
2022-01-27 16:27:35 +01:00
Robert Helgesson 0b197562ab
treewide: use remove when possible
See https://github.com/nix-community/home-manager/pull/2566.
2021-12-27 09:03:18 +01:00
Naïm Favier bd11e2c5e6
Replace usage of literalExample
Instead use the new function `literalExpression`. See

  https://github.com/NixOS/nixpkgs/pull/136909
2021-10-13 00:16:10 +02:00
Matthieu Coudron 47ad3655ec
programs.neovim: expose generatedConfigViml (#2213)
Expose the generated viml config, this has 2 advantages:
1/ user can choose to write the generated config to a file of its choice
2/ the user can prepend/append to the config before writing it

    xdg.configFile."nvim/init.vim".text = ''
	" prepend some config
	${programs.neovim.generatedConfigViml}
	" append some config
    '';

NOTE: this was already possible with 
xdg.configFile."nvim/init.vim" = mkMerge [
  (mkBefore {
    text = ''
      " prepend some config
    '';
  })
  (mkAfter {
    text = ''
      " append some config
    '';
  })
]
2021-07-27 15:59:50 +02:00
t4ccer addc78bea0
neovim: Add coc support (#2154)
This adds two new options: 'programs.neovim.coc.{enable,settings}`.

These settings offer a simple interface over `xdg.configFile."nvim/coc-settings.json`,
using the standard Nix' syntax instead of a multiline string.
2021-07-25 22:40:07 -04:00
Matthieu Coudron c7e79b5337
programs.neovim: dont wrap init.vim (#2058)
since we want to write it ourself in ~/.config/nvim/init.vim
2021-06-03 21:37:53 +02:00
Matthieu Coudron 2a4ab0d891
programs.neovim: fix tests + swap extraConfig and pluginconfig (#2053)
makes more sense to have extraConfig afterwards in case use want to override config
2021-05-31 19:32:21 +02:00
Joe Hermaszewski 0e6c61a440
programs.neovim: Set customRC for new nixpkgs (#2039)
Previously with newer nixpkgs revisions extraConfig would not make it into init.nvim
2021-05-27 22:05:20 +02:00
Robert Schütz e0ee5068dd
neovim: drop python2 support (#1978)
Nixpkgs did the same in https://github.com/NixOS/nixpkgs/pull/121339.
2021-05-03 21:47:08 -06:00
Peter Rice b42d987ad9
neovim: fall back to plugin name if no pname (#1864)
When installing plugins, Home Manager expects plugins (packages) to have
a `pname` attribute.

This is not always the case, so fallback to `name` if `pname` is unset.
2021-03-16 20:09:16 -04:00
Matthieu Coudron 55030c8302
neovim: deprecate programs.neovim.configure (#1810)
The `configure` option is not type checked and an artifact of how
nixpkgs is implemented.
We now have the equivalent options in home-manager and managing
interactions between the 2 systems complexifies maintainance of the
module.
Please use the other options at your disposal:
configure.packages.*.opt  -> programs.neovim.plugins = [ { plugin = ...; optional = true; }]
configure.packages.*.start  -> programs.neovim.plugins = [ { plugin = ...; }]
configure.customRC -> programs.neovim.extraConfig
2021-02-19 09:52:46 +01:00
Matthieu Coudron fc87ac92af
neovim: suffix path with extraPackages (#1756)
* neovim: suffix path with extraPackages
* neovim: avoid generating empty blocks in config
* fix(neovim): install plugin regardless if there is config
2021-02-06 20:43:17 +01:00
Matthieu Coudron 8e0c1c55fb
programs.neovim: write config in $XDG_CONFIG_HOME/init.vim (#1652)
* neovim: write config in $XDG_CONFIG_HOME/init.vim

instead of wrapping the configuration, which has sideeffects
https://github.com/NixOS/nixpkgs/issues/55376

* fix: update test accordingly
2020-12-29 20:26:02 +01:00
Matthieu Coudron 9d775bad07
neovim: mark plugins as optional (possibly) (#1559)
can be loaded with packadd!
2020-12-10 22:30:16 +01:00
Nicolas Berbiche 44f9d68d8c
treewide: replace attrs by formats or types.anything 2020-11-29 21:54:55 -05:00
Robert Helgesson aecd4acfb4
neovim: apply nixfmt 2020-10-12 22:50:49 +02:00
Robbert Gurdeep Singh b584745506
neovim: add extraPackages (#1522)
Add an option to add packages to the PATH of nvim.
This may be usefull to make extra programes availible
for plugins and/or for usage in :! myprogram
2020-10-10 16:15:42 +02:00
Joe Hermaszewski abfb4cde51
vim: Allow setting init.vim config alongside plugins + neovim test (#876)
* neovim: allow setting init.vim config alongside plugins
* neovim: add test for neovim plugins
* neovim: make pluginWithConfigType a have type submodule
2020-09-25 02:08:39 +02:00
Robert Helgesson 41094aa3c7
neovim: fix docbook syntax in option descriptions 2020-04-09 19:27:57 +02:00
Jonathan Ringer 09abc29b73
neovim: add vimdiffAlias 2020-04-09 19:20:19 +02:00
Wael M. Nasreddine 1b7b1bc294
neovim: un-deprecate the configure option
The `programs.neovim.configure` option is consistent with NixOS's
`wrapNeovim` and offers features not supported by the `extraConfig`
and `plugins` option pair.

Closes #971
2020-01-06 07:02:37 -08:00
Tobias Happ c142e5264d
neovim: add extraConfig and plugins options 2019-08-28 12:35:48 +02:00
Tobias Happ 5d7eabb93f
neovim: add finalPackage option as readOnly 2019-08-28 12:25:06 +02:00
Robert Helgesson 55b71223d4
Fix option defaultText when referencing packages
By using `literalExample` the documentation will show the option
default without surrounding quotes.
2019-08-28 00:14:22 +02:00
Matthieu Coudron c18984c452
neovim: allow to override package
If you want to run a development version for instance, it is easier to
set neovim.package rather than work around the wrapping mechanism etc.
2019-02-04 21:52:01 +01:00
Lee Henson 5d8b089188
neovim: support withNodeJs option 2018-11-29 00:54:27 +01:00
Roman Volosatovs 63efd26767
neovim: support new extraPython*Packages options
Also fix `configure` argument.
2018-09-09 22:09:00 +02:00
Roman Volosatovs 9fe6fa7f44
neovim: add vi{,m}Alias options 2018-09-04 07:32:01 +02:00
Matthieu Coudron be60600a47 neovim: add 'configure' flag
so that we have the same options as in nixpkgs.
2018-02-19 07:41:24 +09:00
Matthieu Coudron 61a869a1f5
neovim: add module
This is a basic module that allows to configure different Neovim
providers than the system ones. Note, it does not generate any
`init.vim`.
2017-11-12 23:57:14 +01:00