about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/nv/nvim/plgs')
-rw-r--r--modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/default.nix10
-rw-r--r--modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/tex.lua60
2 files changed, 69 insertions, 1 deletions
diff --git a/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/default.nix b/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/default.nix
index e263cfdc..818aa18e 100644
--- a/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/default.nix
+++ b/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/default.nix
@@ -6,11 +6,19 @@
 }: let
   cfg = config.soispha.programs.nvim;
 in {
-  # WARNING: This is only activated in tex files via the ftplugin.
   home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
     extraPlugins = [
       pkgs.vimExtraPlugins.telescope-bibtex-nvim
     ];
+
+    # Only activate this in tex files.
+    # TODO: Why? <2024-11-23>
+    extraFiles = {
+      "ftplugin/tex.lua".text = ''
+        ${lib.strings.fileContents ./tex.lua}
+      '';
+    };
+
     keymaps = [
       {
         key = "<space>ib";
diff --git a/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/tex.lua b/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/tex.lua
new file mode 100644
index 00000000..4107a7c5
--- /dev/null
+++ b/modules/by-name/nv/nvim/plgs/telescope/extensions/bibtex/tex.lua
@@ -0,0 +1,60 @@
+-- local used = false;
+-- vim.keymap.set('n', '<leader>t', function()
+--     used = not used;
+--     if used then
+--         require('nvim-treesitter.configs').setup {
+--             highlight = {
+--                 additional_vim_regex_highlighting = { "latex", "markdown" },
+--             },
+--         }
+--     else
+--         require('nvim-treesitter.configs').setup {
+--             highlight = {
+--                 additional_vim_regex_highlighting = { "" },
+--             },
+--         }
+--     end
+-- end
+-- );
+--
+--
+
+-- Set tex specific telescope extension
+require("telescope").setup({
+  extensions = {
+    bibtex = {
+      -- Depth for the *.bib file
+      depth = 1,
+      -- Path to global bibliographies (placed outside of the project)
+      global_files = {},
+      -- Define the search keys to use in the picker
+      search_keys = { "author", "year", "title" },
+      -- Template for the formatted citation
+      citation_format = "{{author}} ({{year}}), {{title}}.",
+      -- Only use initials for the authors first name
+      citation_trim_firstname = true,
+      -- Max number of authors to write in the formatted citation
+      -- following authors will be replaced by "et al."
+      citation_max_auth = 2,
+      -- Wrapping in the preview window is disabled by default
+      wrap = false,
+      -- Custom format for citation label
+      custom_formats = {
+        { id = "tex_autocite", cite_marker = "\\autocite{%s}" },
+      },
+      format = "tex_autocite",
+      -- Use context awareness
+      context = true,
+      -- Fallback to global/directory .bib files if context not found
+      -- This setting has no effect if context = false
+      context_fallback = true,
+    },
+  },
+})
+require("telescope").load_extension("bibtex")
+vim.keymap.set(
+  "n",
+  "<leader>ib",
+  function() require("telescope").extensions.bibtex.bibtex() end,
+  { noremap = true, silent = true, desc = "list bibtex entries in telescope" }
+)