This repository has been archived on 2024-04-14. You can view files and clone it, but cannot push or open issues or pull requests.
nixos-dotfiles/user/configs/kakoune/kakoune.nix

71 lines
1.6 KiB
Nix
Raw Normal View History

2022-08-08 10:01:42 +01:00
{ config, pkgs, lib, inputs, ... }:
2022-08-07 16:37:11 +01:00
let
smarttab = pkgs.kakouneUtils.buildKakounePlugin {
2022-08-08 10:01:42 +01:00
name = "kakoune-smarttab";
src = inputs.kakoune-smarttab;
2022-08-07 16:37:11 +01:00
};
2022-08-08 10:01:42 +01:00
2022-08-07 16:37:11 +01:00
auto-pairs = pkgs.kakouneUtils.buildKakounePlugin {
2022-08-08 10:01:42 +01:00
name = "kakoune-auto-pairs";
src = inputs.kakoune-auto-pairs;
2022-08-07 16:37:11 +01:00
};
sort-selections = pkgs.kakouneUtils.buildKakounePlugin {
name = "sort-selections-kak";
2022-08-08 10:01:42 +01:00
src = inputs.kakoune-sort-selections;
2022-08-07 16:37:11 +01:00
};
2022-08-08 10:01:42 +01:00
2022-08-07 16:37:11 +01:00
in
{
programs.kakoune = {
enable = true;
plugins = with pkgs.kakounePlugins; [
smarttab
kakboard
auto-pairs
pkgs.kak-lsp
sort-selections
];
config = {
colorScheme = "gruvbox-dark";
tabStop = 4;
indentWidth = 4;
showMatching = true;
showWhitespace = {
enable = false;
};
numberLines.enable = true;
hooks = [
{ name = "WinSetOption"; option = "filetype=nix|sh"; commands = "hook window BufWritePre .* lsp-formatting-sync"; }
{ name = "WinCreate"; option = ".*"; commands = "kakboard-enable"; }
{ name = "InsertChar"; option = "\\t"; commands = "exec -draft -itersel h@"; }
];
keyMappings = [
];
ui = {
assistant = "none";
setTitle = true;
};
};
extraConfig = ''
set global startup_info_version 99999999
set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` ` « »
eval %sh{kak-lsp --kakoune -s $kak_session} # Not needed if you load it with plug.kak.
lsp-enable
map global user l %{: enter-user-mode lsp<ret>} -docstring "LSP mode"
'';
};
home.packages = [
pkgs.rnix-lsp
];
}
2022-08-08 10:01:42 +01:00