{ empty = { plugins.papis.enable = true; }; defaults = { plugins.papis = { enable = true; settings = { enable_modules = { search = true; completion = true; at-cursor = true; formatter = true; colors = true; base = true; debug = false; }; cite_formats = { tex = { start_str = "[[\cite{]]"; end_str = "}"; separator_str = ", "; }; markdown = { ref_prefix = "@"; separator_str = "; "; }; rmd = { ref_prefix = "@"; separator_str = "; "; }; plain = { separator_str = ", "; }; org = { start_str = "[cite:"; end_str = "]"; ref_prefix = "@"; separator_str = ";"; }; norg = { start_str = "{= "; end_str = "}"; separator_str = "; "; }; typst = { ref_prefix = "@"; separator_str = " "; }; }; cite_formats_fallback = "plain"; enable_keymaps = false; enable_fs_watcher = true; data_tbl_schema = { id = { __unkeyed-type = "integer"; pk = true; }; papis_id = { __unkeyed-type = "text"; required = true; unique = true; }; ref = { __unkeyed-type = "text"; required = true; unique = true; }; author = "text"; editor = "text"; year = "text"; title = "text"; shorttitle = "text"; type = "text"; abstract = "text"; time_added = "text"; notes = "luatable"; journal = "text"; volume = "text"; number = "text"; author_list = "luatable"; tags = "luatable"; files = "luatable"; }; db_path.__raw = "vim.fn.stdpath('data') .. '/papis_db/papis-nvim.sqlite3'"; yq_bin = "yq"; create_new_note_fn.__raw = '' function(papis_id, notes_name) vim.fn.system( string.format( "papis update --set notes %s papis_id:%s", vim.fn.shellescape(notes_name), vim.fn.shellescape(papis_id) ) ) end ''; init_filetypes = [ "markdown" "norg" "yaml" "typst" ]; papis_conf_keys = [ "info-name" "notes-name" "dir" "opentool" ]; enable_icons = true; search = { wrap = true; initial_sort_by_time_added = true; search_keys = [ "author" "editor" "year" "title" "tags" ]; preview_format = [ [ "author" "%s" "PapisPreviewAuthor" ] [ "year" "%s" "PapisPreviewYear" ] [ "title" "%s" "PapisPreviewTitle" ] [ "empty_line" ] [ "journal" "%s" "PapisPreviewValue" "show_key" [ "󱀁 " "%s: " ] "PapisPreviewKey" ] [ "type" "%s" "PapisPreviewValue" "show_key" [ " " "%s: " ] "PapisPreviewKey" ] [ "ref" "%s" "PapisPreviewValue" "show_key" [ " " "%s: " ] "PapisPreviewKey" ] [ "tags" "%s" "PapisPreviewValue" "show_key" [ " " "%s: " ] "PapisPreviewKey" ] [ "abstract" "%s" "PapisPreviewValue" "show_key" [ "󰭷 " "%s: " ] "PapisPreviewKey" ] ]; results_format = [ [ "files" [ " " "F " ] "PapisResultsFiles" "force_space" ] [ "notes" [ "󰆈 " "N " ] "PapisResultsNotes" "force_space" ] [ "author" "%s " "PapisResultsAuthor" ] [ "year" "(%s) " "PapisResultsYear" ] [ "title" "%s" "PapisResultsTitle" ] ]; }; at-cursor = { popup_format = [ [ "author" "%s" "PapisPopupAuthor" ] [ "vspace" "vspace" ] [ "files" [ " " "F " ] "PapisResultsFiles" ] [ "notes" [ "󰆈 " "N " ] "PapisResultsNotes" ] [ "year" "%s" "PapisPopupYear" ] [ "title" "%s" "PapisPopupTitle" ] ]; }; formatter = { format_notes.__raw = '' function(entry) -- Some string formatting templates (see above `results_format` option for -- more details) local title_format = { { "author", "%s ", "" }, { "year", "(%s) ", "" }, { "title", "%s", "" }, } -- Format the strings with information in the entry local title = require("papis.utils"):format_display_strings(entry, title_format, true) -- Grab only the strings (and disregard highlight groups) for k, v in ipairs(title) do title[k] = v[1] end -- Define all the lines to be inserted local lines = { "---", 'title: "Notes -- ' .. table.concat(title) .. '"', "---", "", } return lines end ''; format_references.__raw = '' function(entry) local reference_format = { { "author", "%s ", "" }, { "year", "(%s). ", "" }, { "title", "%s. ", "" }, { "journal", "%s. ", "" }, { "volume", "%s", "" }, { "number", "(%s)", "" }, } local reference_data = require("papis.utils"):format_display_strings(entry, reference_format) for k, v in ipairs(reference_data) do reference_data[k] = v[1] end local lines = { table.concat(reference_data) } return lines end ''; }; papis-storage = { key_name_conversions = { time_added = "time-added"; }; tag_format = null; required_keys = [ "papis_id" "ref" ]; }; }; }; }; example = { plugins.papis = { enable = true; settings = { enable_keymaps = true; papis_python = { dir = "~/Documents/papers"; info_name = "info.yaml"; notes_name.__raw = "[[notes.norg]]"; }; enable_modules = { search = true; completion = true; cursor-actions = true; formatter = true; colors = true; base = true; debug = false; }; cite_formats = { tex = [ "\\cite{%s}" "\\cite[tp]?%*?{%s}" ]; markdown = "@%s"; rmd = "@%s"; plain = "%s"; org = [ "[cite:@%s]" "%[cite:@%s]" ]; norg = "{= %s}"; }; }; }; }; }