Skip to content

Feat: Add Language Server to the UI and add the core integrity/consistency check functionality#13697

Merged
palukku merged 19 commits intoJabRef:mainfrom
palukku:LSP-add-features
Aug 27, 2025
Merged

Feat: Add Language Server to the UI and add the core integrity/consistency check functionality#13697
palukku merged 19 commits intoJabRef:mainfrom
palukku:LSP-add-features

Conversation

@palukku
Copy link
Copy Markdown
Member

@palukku palukku commented Aug 14, 2025

Adds the language server capability to the ui so it can be enabled and disabled from the settings.

Also improved the integrity check by showing the diagnostics for the according field.

It also added support for settings by the client to enable/disable either consistency or integrity check (or both)

before
image

after
image

image

Steps to test

Start JabRef GUI and connect to the LSP Server with an editor of your choice or with VSCode using the extension here: https://github.com/palukku/JabRef-LSP-VSCode-Extension

Mandatory checks

  • I own the copyright of the code submitted and I license it under the MIT license
  • Change in CHANGELOG.md described in a way that is understandable for the average user (if change is visible to the user)
  • [/] Tests created for changes (if applicable)
  • Manually tested changed features in running JabRef (always required)
  • Screenshots added in PR description (if change is visible to the user)
  • [/] Checked developer's documentation: Is the information available and up to date? If not, I outlined it in this pull request.
  • [/] Checked documentation: Is the information available and up to date? If not, I created an issue at https://github.com/JabRef/user-documentation/issues or, even better, I submitted a pull request to the documentation repository.

@palukku palukku changed the title Adds Language Server to the UI and adds the integrity check Adds Language Server to the UI and adds the integrity/consistency check Aug 14, 2025
Comment thread jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerManager.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerManager.java Outdated
@subhramit subhramit changed the title Adds Language Server to the UI and adds the integrity/consistency check Add Language Server to the UI and add the integrity/consistency check Aug 15, 2025
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerManager.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerThread.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerThread.java Outdated
Copy link
Copy Markdown
Member

@InAnYan InAnYan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good work! Left some refactoring comments

Comment thread jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java Outdated
Comment thread jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java Outdated
Comment thread jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java Outdated
Comment thread jabgui/src/main/java/org/jabref/gui/preferences/general/GeneralTabViewModel.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/manager/LanguageServerThread.java Outdated
Comment thread jabsrv/src/main/java/module-info.java
Remove unnecessary classes and renaming
# Conflicts:
#	jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java
@ThiloteE
Copy link
Copy Markdown
Member

ThiloteE commented Aug 22, 2025

Since this is GUI related, please add a screenshot of "before" and "after" in the PR description.

Comment thread jabls/src/main/java/org/jabref/languageserver/util/LspConsistencyCheck.java Outdated
Copy link
Copy Markdown
Member

@InAnYan InAnYan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good work! I really impressed with how you decomposed the logic into classes and made a utility class for quickly making diagnostics.

I think this PR is ready to be merged after you address all comments

Comment thread CHANGELOG.md Outdated
Comment thread jabgui/src/main/java/org/jabref/gui/JabRefGUI.java Outdated
Comment thread jabgui/src/main/java/org/jabref/gui/JabRefGUI.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/BibtexTextDocumentService.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/util/LspIntegrityCheck.java Outdated
@palukku palukku marked this pull request as ready for review August 24, 2025 23:23
@palukku
Copy link
Copy Markdown
Member Author

palukku commented Aug 25, 2025

Tests are failing because of a "unused" translation which i have to look into tomorrow because it is used right here https://github.com/JabRef/jabref/pull/13697/files#diff-c110a4b72509335ad7887b409cde4794a3d04d1011494ae242c7f7d0f1a1c492R65

Comment thread jablib/src/test/java/org/jabref/logic/l10n/LocalizationParser.java
@JabRef JabRef deleted a comment from jabref-machine Aug 25, 2025
Comment thread jabls-cli/src/main/resources/tinylog.properties
InAnYan
InAnYan previously approved these changes Aug 25, 2025
Copy link
Copy Markdown
Member

@InAnYan InAnYan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Everything works!

UPD: Firefox+GitHub lagged, and it showed me that I didn't have any review comments, so I hit approve.

Comment thread jabls/src/main/java/org/jabref/languageserver/ExtensionSettings.java Outdated
Comment thread jabls/src/main/java/org/jabref/languageserver/util/LspDiagnosticHandler.java Outdated
subhramit
subhramit previously approved these changes Aug 25, 2025
Copy link
Copy Markdown
Member

@subhramit subhramit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code was pleasant to read. Good job.
Address Ruslan's comments and should be good to go.

@palukku palukku dismissed stale reviews from subhramit and InAnYan via e94df5e August 25, 2025 22:13
Comment thread jabls/src/main/java/org/jabref/languageserver/util/LspDiagnosticHandler.java Outdated
InAnYan
InAnYan previously approved these changes Aug 27, 2025
@trag-bot
Copy link
Copy Markdown

trag-bot Bot commented Aug 27, 2025

@trag-bot didn't find any issues in the code! ✅✨

@palukku palukku added this pull request to the merge queue Aug 27, 2025
Merged via the queue into JabRef:main with commit 1e7053a Aug 27, 2025
1 check passed
@palukku palukku deleted the LSP-add-features branch August 27, 2025 10:35
Siedlerchr added a commit that referenced this pull request Aug 28, 2025
…n-c23b1a88-5c29-46a2-a007-701edd344b9b' into jetbrains-junie-issue-13623-run-c23b1a88-5c29-46a2-a007-701edd344b9b

* upstream/jetbrains-junie-issue-13623-run-c23b1a88-5c29-46a2-a007-701edd344b9b:
  Streamline code for getTabTitle() (#13781)
  Add missing variables
  Reformat BibTex in Show BibTex Source (#13761)
  Auto publish before JBang tests (#13779)
  Hotfix: calling of publish.yml
  Support BibLaTeX datamodel validations (#13693)
  Auto add and remove of "status: changes-required" label (#13778)
  New Crowdin updates (#13777)
  Restore local-only Git behavior for SLR to fix repository initialization error (#13775)
  Use vanilla hashset (#13771)
  Fix Springer Fetcher names (#13770)
  Fix condition
  Publish SNAPSHOT on jablib change (#13774)
  Adapt as per new set of checks (#13772)
  Bump jablib/src/main/resources/csl-styles from `1194364` to `17cfa60` (#13750)
  Fix path (#13769)
  Mode aware consistency check (#13584)
  Refine JBang check (#13765)
  Add Language Server to the UI and add the integrity/consistency check (#13697)
  Fix/remove comment code (#13763)
Siedlerchr added a commit that referenced this pull request Sep 8, 2025
* upstream/main: (32 commits)
  Fix path (#13769)
  Mode aware consistency check (#13584)
  Refine JBang check (#13765)
  Add Language Server to the UI and add the integrity/consistency check (#13697)
  Fix/remove comment code (#13763)
  New Crowdin updates (#13760)
  Bump org.openrewrite.rewrite from 7.14.0 to 7.14.1 (#13757)
  Bump com.autonomousapps:dependency-analysis-gradle-plugin (#13756)
  Bump dev.langchain4j:langchain4j-bom from 1.2.0 to 1.3.0 in /versions (#13755)
  Bump jablib/src/main/resources/csl-locales from `fa56de1` to `e29c453` (#13754)
  Bump com.autonomousapps:dependency-analysis-gradle-plugin (#13753)
  Bump org.mockito:mockito-core from 5.18.0 to 5.19.0 in /versions (#13752)
  Bump actions/upload-pages-artifact from 3 to 4 (#13751)
  Migrate fetchers to Search.g4 ANTLR parser. (#13691)
  [Junie]: fix: resolve IllegalArgumentException for non-absolute URIs (#13669)
  Add auto-renaming of linked files on entry data change (#13295)
  Walkthrough additions (#13745)
  Switch from zulu to corretto (#13749)
  New Crowdin updates (#13747)
  Fix copy to (#13741)
  ...
@palukku palukku changed the title Add Language Server to the UI and add the integrity/consistency check Feat: Add Language Server to the UI and add the core integrity/consistency check functionality Nov 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants