extract lsp config
This commit is contained in:
		
							parent
							
								
									05396972fa
								
							
						
					
					
						commit
						6dc3a96a30
					
				
					 3 changed files with 68 additions and 68 deletions
				
			
		| 
						 | 
				
			
			@ -7,6 +7,9 @@ in
 | 
			
		|||
  config = {
 | 
			
		||||
    programs.kakoune = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      plugins = with pkgs.kakounePlugins; [
 | 
			
		||||
        kak-lsp
 | 
			
		||||
      ];
 | 
			
		||||
      extraConfig =
 | 
			
		||||
        let
 | 
			
		||||
          colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) {
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +30,7 @@ in
 | 
			
		|||
            ./indent.kak
 | 
			
		||||
            ./keys.kak
 | 
			
		||||
            ./plug.kak
 | 
			
		||||
            ./lsp.kak
 | 
			
		||||
            ./usermode.kak
 | 
			
		||||
            ./git-mode.kak
 | 
			
		||||
          ] ++ lib.optional (dmenu == "rofi") ./rofi-commands.kak)) + ''
 | 
			
		||||
| 
						 | 
				
			
			@ -131,7 +135,6 @@ in
 | 
			
		|||
    };
 | 
			
		||||
    home.file = { ".config/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; };
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      kakoune
 | 
			
		||||
      terminal
 | 
			
		||||
      ranger
 | 
			
		||||
      bmenu
 | 
			
		||||
| 
						 | 
				
			
			@ -145,8 +148,8 @@ in
 | 
			
		|||
    ];
 | 
			
		||||
    home.activation = {
 | 
			
		||||
      update_kakoune = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
 | 
			
		||||
        $DRY_RUN_CMD kak -clear &&
 | 
			
		||||
        $DRY_RUN_CMD kak -l | xargs -r -n1 kak -e "config-source;quit" -ui dummy -c ||
 | 
			
		||||
        $DRY_RUN_CMD timeout 5s kak -clear &&
 | 
			
		||||
        $DRY_RUN_CMD timeout 5s kak -l | xargs -r -n1 timeout 5s kak -e "config-source;quit" -ui dummy -c ||
 | 
			
		||||
        $DRY_RUN_CMD true
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										62
									
								
								user/kakoune/lsp.kak
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								user/kakoune/lsp.kak
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,62 @@
 | 
			
		|||
hook global BufCreate .* -once %{
 | 
			
		||||
 | 
			
		||||
map global normal <F2> ': lsp-rename-prompt<ret>'
 | 
			
		||||
set global lsp_hover_max_lines 10
 | 
			
		||||
set global lsp_auto_highlight_references true
 | 
			
		||||
set global lsp_inlay_diagnostic_sign "●"
 | 
			
		||||
set global lsp_diagnostic_line_error_sign "●"
 | 
			
		||||
 | 
			
		||||
hook global BufCreate   .* %{try lsp-enable}
 | 
			
		||||
 | 
			
		||||
define-command -override -hidden lsp-next-placeholder-bind %{
 | 
			
		||||
    map global normal <tab> ': try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
 | 
			
		||||
    map global insert <tab> '<a-;>: try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
 | 
			
		||||
}
 | 
			
		||||
lsp-next-placeholder-bind
 | 
			
		||||
map global insert <c-o> "<esc>: lsp-code-action-sync Fill<ret>"
 | 
			
		||||
 | 
			
		||||
define-command -override -hidden lsp-enable-decals %{
 | 
			
		||||
    lsp-inlay-diagnostics-enable global
 | 
			
		||||
    lsp-inlay-hints-enable global
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
define-command -override -hidden lsp-disable-decals %{
 | 
			
		||||
    lsp-inlay-diagnostics-disable global
 | 
			
		||||
    lsp-inlay-hints-disable global
 | 
			
		||||
}
 | 
			
		||||
lsp-enable-decals
 | 
			
		||||
 | 
			
		||||
hook global ModeChange '.*:insert:normal' %{lsp-enable-decals}
 | 
			
		||||
hook global ModeChange '.*:normal:insert' %{lsp-disable-decals}
 | 
			
		||||
 | 
			
		||||
hook global WinSetOption filetype=(c|cpp|rust) %{
 | 
			
		||||
    hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
 | 
			
		||||
    hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens
 | 
			
		||||
    hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens
 | 
			
		||||
    hook -once -always window WinSetOption filetype=.* %{
 | 
			
		||||
        remove-hooks window semantic-tokens
 | 
			
		||||
    }
 | 
			
		||||
  decl -hidden -docstring "Timestamp of the last check" int last_modified
 | 
			
		||||
  hook window RawKey .* %{
 | 
			
		||||
      eval %sh{
 | 
			
		||||
          if [ "${kak_opt_last_modified}" != "${kak_timestamp}" ]; then
 | 
			
		||||
              echo "unset-option buffer lsp_inlay_diagnostics"
 | 
			
		||||
              echo "unset-option buffer lsp_inlay_hints"
 | 
			
		||||
          fi
 | 
			
		||||
      }
 | 
			
		||||
      set current last_modified %val{timestamp}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare-option -hidden str modeline_progress ""
 | 
			
		||||
define-command -hidden -params 6 -override lsp-handle-progress %{
 | 
			
		||||
    set global modeline_progress %sh{
 | 
			
		||||
        if ! "$6"; then
 | 
			
		||||
            echo "$2${5:+" ($5%)"}${4:+": $4"}"
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
set global modelinefmt "%%opt{modeline_progress} %opt{modelinefmt}"
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -36,68 +36,3 @@ plug 'lelgenio/kak-crosshairs' config %{
 | 
			
		|||
plug "natasky/kakoune-multi-file"
 | 
			
		||||
 | 
			
		||||
plug "lelgenio/kakoune-colemak-neio"
 | 
			
		||||
 | 
			
		||||
plug 'kak-lsp/kak-lsp' do %{
 | 
			
		||||
    rustup target add x86_64-unknown-linux-musl
 | 
			
		||||
    cargo install --locked --force --path . --target x86_64-unknown-linux-musl
 | 
			
		||||
} config %{
 | 
			
		||||
    map global normal <F2> ': lsp-rename-prompt<ret>'
 | 
			
		||||
    set global lsp_hover_max_lines 10
 | 
			
		||||
    set global lsp_auto_highlight_references true
 | 
			
		||||
    set global lsp_inlay_diagnostic_sign "●"
 | 
			
		||||
    set global lsp_diagnostic_line_error_sign "●"
 | 
			
		||||
 | 
			
		||||
    hook global BufCreate   .* %{try lsp-enable}
 | 
			
		||||
 | 
			
		||||
    define-command -override -hidden lsp-next-placeholder-bind %{
 | 
			
		||||
        map global normal <tab> ': try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
 | 
			
		||||
        map global insert <tab> '<a-;>: try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
 | 
			
		||||
    }
 | 
			
		||||
    lsp-next-placeholder-bind
 | 
			
		||||
    map global insert <c-o> "<esc>: lsp-code-action-sync Fill<ret>"
 | 
			
		||||
 | 
			
		||||
    define-command -override -hidden lsp-enable-decals %{
 | 
			
		||||
        lsp-inlay-diagnostics-enable global
 | 
			
		||||
        lsp-inlay-hints-enable global
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    define-command -override -hidden lsp-disable-decals %{
 | 
			
		||||
        lsp-inlay-diagnostics-disable global
 | 
			
		||||
        lsp-inlay-hints-disable global
 | 
			
		||||
    }
 | 
			
		||||
    lsp-enable-decals
 | 
			
		||||
 | 
			
		||||
    hook global ModeChange '.*:insert:normal' %{lsp-enable-decals}
 | 
			
		||||
    hook global ModeChange '.*:normal:insert' %{lsp-disable-decals}
 | 
			
		||||
 | 
			
		||||
    hook global WinSetOption filetype=(c|cpp|rust) %{
 | 
			
		||||
        hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
 | 
			
		||||
        hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens
 | 
			
		||||
        hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens
 | 
			
		||||
        hook -once -always window WinSetOption filetype=.* %{
 | 
			
		||||
            remove-hooks window semantic-tokens
 | 
			
		||||
        }
 | 
			
		||||
      decl -hidden -docstring "Timestamp of the last check" int last_modified
 | 
			
		||||
      hook window RawKey .* %{
 | 
			
		||||
          eval %sh{
 | 
			
		||||
              if [ "${kak_opt_last_modified}" != "${kak_timestamp}" ]; then
 | 
			
		||||
                  echo "unset-option buffer lsp_inlay_diagnostics"
 | 
			
		||||
                  echo "unset-option buffer lsp_inlay_hints"
 | 
			
		||||
              fi
 | 
			
		||||
          }
 | 
			
		||||
          set current last_modified %val{timestamp}
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    declare-option -hidden str modeline_progress ""
 | 
			
		||||
    define-command -hidden -params 6 -override lsp-handle-progress %{
 | 
			
		||||
        set global modeline_progress %sh{
 | 
			
		||||
            if ! "$6"; then
 | 
			
		||||
                echo "$2${5:+" ($5%)"}${4:+": $4"}"
 | 
			
		||||
            fi
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    set global modelinefmt "%%opt{modeline_progress} %opt{modelinefmt}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue