Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Breaking changes #1

Open
jghauser opened this issue Sep 30, 2022 · 10 comments
Open

Breaking changes #1

jghauser opened this issue Sep 30, 2022 · 10 comments

Comments

@jghauser
Copy link
Owner

jghauser commented Sep 30, 2022

Breaking changes will be communicated in this issue.

@jghauser jghauser pinned this issue Sep 30, 2022
@jghauser
Copy link
Owner Author

jghauser commented May 5, 2023

With #19 (thanks to @davvil!), we now depend on yq rather than the lyaml lua rock to convert papis' .yaml files. This should eliminate difficulties that have always plagued the installation of such rocks (especially, but not only, when it comes to lazy.nvim). Please check out the installation section in the README for further information.

@jghauser
Copy link
Owner Author

jghauser commented May 6, 2023

With #21, we now use the papis_id to identify entries (rather than depending on the ref). This brings advantages as papis_id is supposed to be stable, whereas the user might change ref (which has at times led to some funny behaviour). After updating, please close all neovim instances, start a new one (there might be an error message when you run :PapisStart) and run :PapisReInitData.

I had some error messages appear due to duplicate refs, which weren't caught before. If that happens, please edit the relevant info.yaml files (check papis.nvim debug messages to find out which ones) and rerun :PapisReInitData.

If failures persist, please delete the papis.nvim database. Use :checkhealth papis to find out its location.

@jghauser
Copy link
Owner Author

jghauser commented Nov 26, 2023

With #28, I introduced a change in default keymaps. Given that only keymaps are affected and that these aren't enabled by default, this probably won't break anyone's setup -- but it might mess with your muscle memory for a bit. The change comes because the <c-n> and <c-p> insert commands are used by Neovim and Telescope for selecting next/previous items and the way things were set up messed with this (see #22).

The new functionality is:

  1. papis.nvim keymaps are only active for the files that match what's set in the init_filenames option
  2. Telescope insert mode <c-n> (open note) and <c-o> (open file) have become <c-o>n and f`
  3. Cursor action (normal mode) <leader>pn and <leader>po have become <leader>pon and <leader>pof
    EDIT: 4. Insert mode <c-p>p to open Telescope search has become <c-o>p.

These keybinds are unfortunately a bit longer, but I thought it more important that the papis.nvim default keybinds do not clash with neovim/telescope defaults. Of course, the keybinds can still be disabled and set to your heart's content 😄

@jghauser
Copy link
Owner Author

With #33, we've added an initial way of inserting formatted references (thank you @panosz!). This has required a small adjustment to the db schema and you might get a notification because of this:

.../myNeovimPackages/start/sqlite.lua/lua/sqlite/assert.lua:79: sqlite.lua: schema defined ~= db schema. Please drop `data` table first or set ensure to false.

Run :PapisReInitData to re-initialise the db with the required additional fields.

@jghauser
Copy link
Owner Author

jghauser commented Jun 2, 2024

With #48, I've tried to improve the papis.nvim startup procedure. This also lays the groundwork for various future improvements (and more breaking changes). For now the following has changed:

  • init_filenames is now init_filetypes. papis.nvim now only autostarts depending on certain filetypes. This makes the codebase easier to manage. If you've customised this, make sure to update it to a list of valid Neovim filetypes.
  • papis_python needs no longer be set. papis.nvim now gets the options automatically from Papis when first starting and saves them (even across Neovim restarts) in the db. When you update your Papis configuration, import it again into papis.nvim with :PapisReInitConfig
  • :PapisStart has been removed. Please use the init_filetypes to define when to start the plugin.

All in all, this should make papis.nvim easier to set up without the speed penalties of querying papis config at startup. It will also make adding stuff like #25 easier.

Note also that I've started cutting releases. So if the breaking changes annoy you, feel free to use e.g. v0.1.0. 😉

@jghauser
Copy link
Owner Author

jghauser commented Jun 4, 2024

With #58, I have removed plenary.nvim and introduced the new dependency pathlib.nvim. nvim-treesitter is also not needed anymore (In fact, it hasn't been for a while, I just had failed to notice 😅). Note that this is where the rocks.nvim package manager shines and where this isn't a breaking change (as it should be!).

To give an outlook on future changes: I want to make use of the neovim ecosystem's increasing ability to handle luarocks and integrate some of them. First will be a re-introduction of lyaml, so that we do no longer need yq (though I will leave that as a fallback). Next, I'll also look at citeproc-lua, so that we can insert proper formatted references. Finally, I'm gonna see if I can use nvim-nio to get async working in some of the slower parts of papis.nvim. No promises on when this is going to happen though 😉.

@jghauser
Copy link
Owner Author

With #70, papis.nvim sorts entries by time-added initially (before entering a query). This required changing the db schema and that in turn requires running :PapisReInitData to re-initialise the db with the updated schema. One of the next tasks is to find a way to catch such changes automatically :).

@jghauser
Copy link
Owner Author

Various breaking changes have come with v0.5.0

Pretty icons
These require nerd font or a similar font. If you don't have that, set enable_icons to false. Please reload the database to update pre-calculated data for the Telescope picker.

Command with subcommands
The :Papis command now has subcommands and various subcommands have been renamed. So instead of for example :PapisReInitData you should now use Papis reload data. The ReInit subcommand is now reload, I've added Papis search (which opens Telescope), and all the commands that interact with the ref under cursor are in the at-cursor subcommand (the cursor-actions module has been renamed to at-cursor too).

The enable_commands option has been removed.

Custom keymaps you may have set should now call the new Papis commands.

@jghauser
Copy link
Owner Author

Not really a breaking change, but more of an elimination of an entire class of breaking changes ;). With #81, papis.nvim can now detect when the database schema has changed and informs the user to run :Papis reload data (rather than me having to post about it here). 🎉

@jghauser
Copy link
Owner Author

jghauser commented Sep 1, 2024

The plugin now handles acting on multi selections in the Telescope picker (see #88, and thanks @maxmahlke!). This means you can now select multiple entries with tab, and then do whatever action you already know from before (add refs, open notes, etc.). This required some significant changes, in particular the following:

  1. The syntax of the cite_formats option changed. Refer to the README for more.
  2. The name and function of the (now) format_notes (before: format_notes_fn) and format_references (before: format_references_fn) changed. They now both simply return lines. Refer to the README for more.

If you didn't touch these options, you don't need to do anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant