From 5242db83e2b7dbcd2d7200e18c8b8ad2ceb30e25 Mon Sep 17 00:00:00 2001 From: derped Date: Fri, 27 Mar 2020 13:05:57 +0100 Subject: [PATCH] emacs: Add yasnippets to rust company completions. --- pkgs/pkgsets/emacs/company.nix | 5 ++++- pkgs/pkgsets/emacs/lsp.nix | 3 +++ pkgs/pkgsets/emacs/yasnippet.nix | 18 ++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 pkgs/pkgsets/emacs/yasnippet.nix diff --git a/pkgs/pkgsets/emacs/company.nix b/pkgs/pkgsets/emacs/company.nix index 9904c04..911782c 100644 --- a/pkgs/pkgsets/emacs/company.nix +++ b/pkgs/pkgsets/emacs/company.nix @@ -100,7 +100,9 @@ in mkIf (elem "emacs::company" config.machine.pkgs) { company = { enable = true; diminish = [ "company-mode" ]; - hook = [ "(after-init . global-company-mode)" ]; + hook = [ "(after-init . global-company-mode)" ] + ++ optional (elem "emacs::rust" config.machine.pkgs) + ''(rust-mode . (lambda () (setq company-backends '((company-capf :with company-yasnippet)))))''; bind = { "\t" = "'company-complete-common"; }; init = ''(require 'ffap)''; config = '' @@ -119,6 +121,7 @@ in mkIf (elem "emacs::company" config.machine.pkgs) { ([remap complete-symbol] . company-complete-common)) ''; }; + company-box = { enable = true; hook = [ "(company-mode . (lambda () (company-box-mode)))" ]; diff --git a/pkgs/pkgsets/emacs/lsp.nix b/pkgs/pkgsets/emacs/lsp.nix index c2c6971..982f0ea 100644 --- a/pkgs/pkgsets/emacs/lsp.nix +++ b/pkgs/pkgsets/emacs/lsp.nix @@ -15,6 +15,9 @@ mkIf (elem "emacs::lsp" config.machine.pkgs) { ${optionalString (elem "emacs::rust" config.machine.pkgs) ''(rust-mode . "rust")''} )) + ${optionalString (elem "emacs::rust" config.machine.pkgs) '' + (setq lsp-rust-clippy-preference "on") + ''} ''; }; diff --git a/pkgs/pkgsets/emacs/yasnippet.nix b/pkgs/pkgsets/emacs/yasnippet.nix new file mode 100644 index 0000000..5120ff0 --- /dev/null +++ b/pkgs/pkgsets/emacs/yasnippet.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, ... }: + +with lib; + +mkIf (elem "emacs::yasnippet" config.machine.pkgs) { + programs.emacs.init.usePackage = { + yasnippet = { + enable = true; + hook = [ "(after-init . yas-global-mode)" ]; + # config = '' + + # ''; + }; + yasnippet-snippets = { + enable = true; + }; + }; +}