From ba18e9727759a87b7bee8a382103deebfe482874 Mon Sep 17 00:00:00 2001 From: Dennis Frieberg Date: Sun, 19 Jun 2022 14:53:07 +0200 Subject: [PATCH] devShell:kakoune autocompile and forward search working --- flake.nix | 52 ++++++++++++++++++++++++++++++++++------------------ src/Main.tex | 2 +- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/flake.nix b/flake.nix index 2f6ddd0..a12cb0e 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,8 @@ outputs = {self, nixpkgs} : let + # name to be used as identifier for editor environments and such + name = "Name"; #Generate a user-friendly version number. version = builtins.substring 0 8 self.lastModifiedDate; @@ -22,6 +24,7 @@ # Nixpkgs instantiated for supported system types. nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { packages = forAllSystems (system: let @@ -33,7 +36,7 @@ in { default = pkgs.stdenvNoCC.mkDerivation { name = "output.pdf"; - buildInputs = [latex latexrun]; + buildInputs = [latex latexrun pkgs.biber]; src = self; buildPhase = '' latexrun -o output.pdf src/Main.tex @@ -48,19 +51,12 @@ devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; - # Needs to be in sync with latex dependencie above, Don't - # know how to fix this as we need to now the system to get - # the packages. The plus side is you can have different packages in your - # development environment than in your build one. - latexdeps = {inherit (pkgs.texlive) scheme-small;}; - latex = pkgs.texlive.combine latexdeps; - latexrun = pkgs.latexrun; - in ( rec { default = kakoune; kakoune = let texlab = pkgs.texlab; + latexTmpDir = "src/latex.out/"; myKakoune = let # this could also be done by generating toml with the @@ -72,6 +68,18 @@ filetypes = ["latex"] roots = [".git"] command = "texlab" + # args = ["-vvvv", "--log-file", "/tmp/texlabLog"] + settings_section = "texlab" + [language.latex.settings.texlab.build] + onSave = true + executable = "latexrun" + args = ["--bibtex-cmd", "biber", "--latex-args", "'-synctex=1'","%f"] + forwardSearchAfter = true + [language.latex.settings.texlab.forwardSearch] + executable = "zathura" + args = ["--synctex-forward", "%l:1:%f", "%p"] + [language.latex.settings.texlab] + auxDirectory = "${latexTmpDir}" ''; }; config = pkgs.writeTextFile (rec { @@ -81,35 +89,43 @@ colorscheme solarized-dark set global tabstop 2 set global indentwidth 2 + # eval %sh{kak-lsp --kakoune --session $kak_session -c ${kak-lsp-config} --log /tmp/kak-lspLog -vvvv} eval %sh{kak-lsp --kakoune --session $kak_session -c ${kak-lsp-config}} hook global WinSetOption filetype=(latex) %{ lsp-auto-hover-enable - lsb-enable-window + lsp-enable-window } + add-highlighter global/ number-lines + map global normal ': fzf-mode' ''; }); in pkgs.kakoune.override { - plugins = with pkgs.kakounePlugins; [kak-lsp config]; + plugins = with pkgs.kakounePlugins; [fzf-kak kak-lsp config]; }; in pkgs.mkShellNoCC { - packages = [myKakoune texlab pkgs.git latex latexrun pkgs.zathura]; + inputsFrom = [self.outputs.packages.${system}.default]; + packages = [myKakoune texlab pkgs.git pkgs.zathura pkgs.fzf]; shellHook = '' alias ..="cd .." - export KAKOUNE_CONFIG_DIR="/your/user/config/directory" - kak -d -s latexPackage & - alias vim="kak -c latexPackage" + mkdir -p ${latexTmpDir} + touch /tmp/texlabLog + export KAKOUNE_CONFIG_DIR="/dev/null/" + kak -d -s ${name} & + alias vim="kak -c ${name}" ''; }; texstudio = pkgs.mkShellNoCC { - packages = [pkgs.texstudio pkgs.git latex latexrun]; + inputsFrom = [self.outputs.packages.${system}.default]; + packages = [pkgs.texstudio pkgs.git]; }; - + texmaker = pkgs.mkShellNoCC { - packages = [pkgs.texmaker pkgs.git latex latexrun]; + inputsFrom = [self.outputs.packages.${system}.default]; + packages = [pkgs.texmaker pkgs.git]; }; }) ); diff --git a/src/Main.tex b/src/Main.tex index d3cde85..56ac7ff 100644 --- a/src/Main.tex +++ b/src/Main.tex @@ -1,4 +1,4 @@ \documentclass{scrartcl} \begin{document} - Hi + Hallo Welt! \end{document}