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
|
|
|
|
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-12-20 09:46:12 +00:00
|
|
|
|
|
2022-12-16 08:10:28 +00:00
|
|
|
|
in
|
|
|
|
|
{
|
2022-08-07 16:37:11 +01:00
|
|
|
|
programs.kakoune = {
|
|
|
|
|
enable = true;
|
|
|
|
|
plugins = with pkgs.kakounePlugins; [
|
2022-09-04 00:54:47 +01:00
|
|
|
|
kak-lsp
|
2022-09-28 13:34:44 +01:00
|
|
|
|
kakboard
|
2022-09-04 00:54:47 +01:00
|
|
|
|
kakoune-extra-filetypes
|
2022-12-16 08:10:28 +00:00
|
|
|
|
#powerline-kak
|
2022-09-28 13:34:44 +01:00
|
|
|
|
smarttab
|
|
|
|
|
sort-selections
|
2022-08-07 16:37:11 +01:00
|
|
|
|
];
|
|
|
|
|
config = {
|
2022-12-27 09:40:36 +00:00
|
|
|
|
colorScheme = "gruvbox-dark";
|
2022-08-07 16:37:11 +01:00
|
|
|
|
tabStop = 4;
|
|
|
|
|
indentWidth = 4;
|
|
|
|
|
showMatching = true;
|
2022-10-03 23:21:40 +01:00
|
|
|
|
showWhitespace = { enable = false; };
|
2022-08-07 16:37:11 +01:00
|
|
|
|
numberLines.enable = true;
|
|
|
|
|
|
|
|
|
|
hooks = [
|
2022-10-03 23:21:40 +01:00
|
|
|
|
{
|
|
|
|
|
name = "WinSetOption";
|
|
|
|
|
option = "filetype=nix|sh";
|
|
|
|
|
commands = "hook window BufWritePre .* lsp-formatting-sync";
|
|
|
|
|
}
|
2022-08-07 16:37:11 +01:00
|
|
|
|
|
2022-10-03 23:21:40 +01:00
|
|
|
|
{
|
|
|
|
|
name = "WinCreate";
|
|
|
|
|
option = ".*";
|
|
|
|
|
commands = "kakboard-enable";
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
name = "InsertChar";
|
|
|
|
|
option = "\\t";
|
|
|
|
|
commands = "exec -draft -itersel h@";
|
|
|
|
|
}
|
2022-08-07 16:37:11 +01:00
|
|
|
|
];
|
|
|
|
|
|
2022-10-03 23:21:40 +01:00
|
|
|
|
keyMappings = [ ];
|
2022-08-07 16:37:11 +01:00
|
|
|
|
|
|
|
|
|
ui = {
|
|
|
|
|
assistant = "none";
|
|
|
|
|
setTitle = true;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
extraConfig = ''
|
|
|
|
|
set global startup_info_version 99999999
|
2022-09-04 00:54:47 +01:00
|
|
|
|
#set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` ` “ ” ‘ ’ « » ‹ ›
|
2022-08-07 16:37:11 +01:00
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
2022-12-16 08:10:28 +00:00
|
|
|
|
# require-module powerline
|
|
|
|
|
# powerline-start
|
|
|
|
|
# powerline-theme gruvbox
|
|
|
|
|
# powerline-separator global half-step
|
2022-08-07 16:37:11 +01:00
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
2022-10-03 23:21:40 +01:00
|
|
|
|
home.packages = [ pkgs.rnix-lsp ];
|
2022-08-07 16:37:11 +01:00
|
|
|
|
}
|