Skip to content

LiquidJava Webview#23

Merged
rcosta358 merged 35 commits intoliquid-java:mainfrom
rcosta358:lj-webview
Nov 21, 2025
Merged

LiquidJava Webview#23
rcosta358 merged 35 commits intoliquid-java:mainfrom
rcosta358:lj-webview

Conversation

@rcosta358
Copy link
Collaborator

@rcosta358 rcosta358 commented Nov 20, 2025

This PR introduces the new LiquidJava sidebar with a webview to display errors and warnings in more detail. The language server publishes the native diagnostics to the client and now also sends a notification with the custom liquidjava diagnostics, which are then used to display in the webview. The webview uses vanilla HTML, CSS and JavaScript for the user interface, since a framework like React would cause performance issues and overhead.

image

The current architecture of the LiquidJava extension is as follows:

image

Additional Changes

  • Refinement errors allow the user to expand node simplifications of the found expression by clicking on them, using the derivation nodes
  • Added a command that displays a palette to choose between all the liquidjava commands, which is executed when the status bar indicator is clicked (more will be added in the future, namely the start, stop, restart and verify commands)
  • Added the liquidjava.showView command to open the sidebar
  • Changed the state of the status indicator to passed or failed using the diagnostics middleware instead of stdout from the language server
  • Added CodeLens integration that displays a "link" above the error in the editor and opens the view when clicked
  • Added new types in the client and DTOs in the server for the liquidjava diagnostics
  • The error (and warning) messages in the VS Code diagnostics now just include the message corresponding to the LJError, instead of the whole output from the verifier

@rcosta358 rcosta358 self-assigned this Nov 20, 2025
@rcosta358 rcosta358 added the enhancement New feature or request label Nov 20, 2025
Copy link
Collaborator

@CatarinaGamboa CatarinaGamboa left a comment

Choose a reason for hiding this comment

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

Awesome 🎉 A couple requests:

  1. add some more documentation to the classes for maintainability - as in for it to be easier to be changed by other people - add it at least to the places I mentioned
  2. in a separate PR, you can add these new features to the README? Like the image you have in the PR description is pretty cool, and showcasing the new features would be very helpful!

private messageEmitter = new vscode.EventEmitter<any>();
public readonly onDidReceiveMessage = this.messageEmitter.event;

constructor(private readonly extensionUri: vscode.Uri) {}
Copy link
Collaborator

Choose a reason for hiding this comment

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

didnt know this was possible haha

@rcosta358 rcosta358 merged commit 19924ab into liquid-java:main Nov 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants