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

Configure remote library entry import on autocomplete #3655

Open
maxanier opened this issue Sep 24, 2024 · 3 comments
Open

Configure remote library entry import on autocomplete #3655

maxanier opened this issue Sep 24, 2024 · 3 comments
Labels
enhancement New feature or (non bug related) change to the program. untriaged Issue type still needs to be triaged or verified.

Comments

@maxanier
Copy link

maxanier commented Sep 24, 2024

Situation

I have multiple Bibtex libraries outside my project directory which I a) include in my Tex file and b) have added to the "Remote Libraries" tab.
In addition, I have included a IEEEabrv.bib file inside the project directory with journal title abbreviations in my Tex file.

TeXiFy: 0.9.7
PyCharm: 2024.2.0.1 (Community Edition)

Problem

If I have a citation of a reference that is in the "remote" (outside of project directory), this is fine for pdflatex/biblatex/biber, but TeXiFy shows a warning that the reference cannot be found. This seems to be due to those files not being indexed. This is ok for me.
However:
When typing a \cite{ command, TeXiFy offers to autocomplete the citation key from the remote libraries. If accepted, it copies that entry from the "remote" library to the "local" IEEEabrv.bib file.
This is apparently intentional:

When using completion on an item that is not in the local bibliography file it will be added by TeXiFy
and makes sense if the "remote" library is actually remote or at least not included in the main file anyway.

For me, this does not make sense because the "remote" library is included in my Tex document anyway.

Proposed Feature

I would like to see maybe a config option to disable this auto-import (globally, on project basis, or even per remote library).
This would also might help with informing the user about the feature itself. It took me some time to figure out why references that I deleted would still be available in my Tex document (they were unknowingly added somewhere in the middle of my IEEEabrv.bib file).

Alternatively or additionally, I would like to either configure the "local" .bib file to which the imported entries are added or have a documentation on how this file is selected by TeXiFy. I don't want my IEEEabrv.bib modified, but rather another.

If you happen to have time to implement this, that would be awesome. If not, maybe you can point me to a point to get started. I have no experience with Kotlin nor Intellij plugins, but maybe I will be able to create at least a hacky workaround.

Sidenote: Awesome plugin. PyCharm + TeXiFy is now my favorite LaTeX IDE

@maxanier maxanier added enhancement New feature or (non bug related) change to the program. untriaged Issue type still needs to be triaged or verified. labels Sep 24, 2024
@PHPirates
Copy link
Collaborator

I have multiple Bibtex libraries outside my project directory which I a) include in my Tex file and b) have added to the "Remote Libraries" tab.

Could you explain why you use the remote libraries tool window? If you include a bib file in your main LaTeX file then you should have autocompletion.
Where is the bib file located and how do you include it?

@maxanier
Copy link
Author

I have a non "standard" setup (of course):
The Tex code is in a Git repository. The .bib files are in a different location and synced by Nextcloud.
I work on different systems and both Linux and Windows, so the paths of .bib files vary. Hence, I have a "environment" file in the Tex repo which is not checked in and defines the root path for my .bib files on the respective system as a macro.
Then I include the bibliography in my main.tex using the macro:

\addbibresource{references/IEEEabrv.bib}
%! suppress = FileNotFound
\addbibresource{\myCloudstoreLocation/Publikationen/mybib.bib}
...

I don't know how TeXiFy identifies and indexes the bibliography, but I assume it does not parse macros and doesn't index outside the project root anyway. This is fine.
But I want to have all my references in a single synced location independent of my Tex repositories.
Therefore, the "remote" libraries tool seems ideal.

The autoimport to a local file is also nice in general, but since I sometimes edit the references in my main file (change keywords, change from submitted to published, ...). I wanted to disable this feature to avoid having outdated local entries.
But maybe it is not a bad idea after all... Maybe I have to use it a bit to weight benefits and drawbacks.

So my main feature request would be to have a way to specify the file the entries are imported to.
Then I can still just delete that file if I don't want the imported entries.
I was not able to figure out, which file is currently selected. Adding a second local bib did not work.

@PHPirates
Copy link
Collaborator

Thanks, that makes sense. I assume \myCloudstoreLocation is defined like \newcommand{\myCloudstoreLocation}{/some/path}? If yes, we should be able to support that, I believe we already support commands in paths for some other feature. TeXiFy already indexes files outside the project root, as that is how we provide autocompletion for installed packages.

In the meantime, I agree the remote libraries feature could be used as a workaround if we add a setting to disable the auto import.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or (non bug related) change to the program. untriaged Issue type still needs to be triaged or verified.
Projects
None yet
Development

No branches or pull requests

2 participants