From 5b6c9313d0e766899eb3f3ce634e3fdaf6d68245 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Mon, 28 Dec 2020 20:20:13 -0500 Subject: ide: add ftags script --- .ghci | 1 + Biz/Bild/Rules.nix | 9 +++++++-- Biz/Bild/ShellHook.sh | 15 --------------- Biz/Ide/ftags.sh | 18 ++++++++++++++++++ 4 files changed, 26 insertions(+), 17 deletions(-) create mode 100755 Biz/Ide/ftags.sh diff --git a/.ghci b/.ghci index 18c5aa9..3f7039a 100644 --- a/.ghci +++ b/.ghci @@ -7,3 +7,4 @@ :def iq (\arg -> let [x, y] = Prelude.words arg in return $ "import qualified " ++ x ++ " as " ++ y) :def hoogle \s -> return $ ":! hoogle search --count=15 \"" ++ s ++ "\"" :def hdoc \s -> return $ ":! hoogle search --info \"" ++ s ++ "\"" +:def f \_ -> return $ ":! ftags" diff --git a/Biz/Bild/Rules.nix b/Biz/Bild/Rules.nix index a8695eb..f5f016f 100644 --- a/Biz/Bild/Rules.nix +++ b/Biz/Bild/Rules.nix @@ -3,6 +3,9 @@ with nixpkgs; let + ghcCompiler = "ghc865"; + ghcjsCompiler = "ghcjs86"; + # provided by .envrc root = builtins.getEnv "BIZ_ROOT"; @@ -50,8 +53,8 @@ let ${toString (lib.lists.subtractLists haskellDeps deps)} '')); - ghc_ = mkGhc pkgs.haskell.packages.ghc865.ghcWithHoogle; - ghcjs_ = mkGhc pkgs.haskell.packages.ghcjs86.ghcWithPackages; + ghc_ = mkGhc pkgs.haskell.packages.${ghcCompiler}.ghcWithHoogle; + ghcjs_ = mkGhc pkgs.haskell.packages.${ghcjsCompiler}.ghcWithPackages; in { ghc = main: let @@ -131,6 +134,7 @@ in { # tools nixpkgs.cmark + nixpkgs.haskell.packages.${ghcCompiler}.fast-tags nixpkgs.figlet nixpkgs.hlint nixpkgs.lolcat @@ -140,6 +144,7 @@ in { nixpkgs.python37Packages.black nixpkgs.python37Packages.pylint nixpkgs.wemux + (pkgs.writeScriptBin "ftags" (builtins.readFile ../Ide/ftags.sh)) ]; shellHook = ". ${./ShellHook.sh}"; }; diff --git a/Biz/Bild/ShellHook.sh b/Biz/Bild/ShellHook.sh index 7b43d26..7724c28 100644 --- a/Biz/Bild/ShellHook.sh +++ b/Biz/Bild/ShellHook.sh @@ -124,18 +124,3 @@ function ci() { } help - -# ftags - search ctags -ftags() { - local line - if [[ -e tags ]] - then - line=$( - awk 'BEGIN { FS="\t" } !/^!/ {print toupper($4)"\t"$1"\t"$2"\t"$3}' tags | \ - cut -c1-80 | fzf --nth=1,2 - ) - ${EDITOR:-vim} \ - $(cut -f3 <<< "$line") -c "set nocst" \ - -c "silent tag $(cut -f2 <<< "$line")" - fi -} diff --git a/Biz/Ide/ftags.sh b/Biz/Ide/ftags.sh new file mode 100755 index 0000000..daa4ca0 --- /dev/null +++ b/Biz/Ide/ftags.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# ftags - search ctags +set -euo pipefail +tags=$BIZ_ROOT/tags +if [[ ! -e $tags ]] +then + fast-tags -R $BIZ_ROOT +else + line=$( + awk 'BEGIN { FS="\t" } !/^!/ {print toupper($4)"\t"$1"\t"$2"\t"$3}' $tags \ + | cut -c1-80 \ + | fzf --nth=1,2 + ) + ${EDITOR:-vim} \ + $(cut -f3 <<< "$line") \ + -c "set nocst" \ + -c "silent tag $(cut -f2 <<< "$line")" +fi -- cgit v1.2.3