Orange-OpenSource / hurl

Hurl, run and test HTTP requests with plain text.
https://hurl.dev
Apache License 2.0
12.89k stars 482 forks source link

LSP, Syntax Highlighting #1272

Open tommyiswhoiam opened 1 year ago

tommyiswhoiam commented 1 year ago

Problem to Solve

Adding support for language server, syntax highlighting, and formatting in Visual Studio Code (VSCode) for the Hurl library would improve the overall development experience for users of the library. Currently, users may face difficulties in writing Hurl scripts due to the lack of these features in VSCode, which are essential for any programming language. The language server would provide users with intelliSense, code navigation, and error diagnostics, while syntax highlighting would improve readability and make it easier for users to identify syntax errors. The formatting support would allow users to apply a consistent and readable format to their JSON and XML data.

Proposal

The proposal is to implement language server, syntax highlighting, and formatting in VSCode for Hurl. The language server would provide features such as:

The syntax highlighting would make it easier for users to read and understand Hurl scripts by visually distinguishing keywords, comments, strings, and other elements.

The formatting support would allow users to apply a consistent format to their JSON and XML data using a formatter, such as Prettier. This would improve the readability and maintainability of their data.

Additional Context and Resources

Language servers, syntax highlighting, and formatting are commonly used features in many programming languages and IDEs. Implementing these features in VSCode for Hurl would bring it up to par with other programming languages and IDEs, making it easier for users to get started with Hurl.

There are open-source implementations of language servers, syntax highlighting, and formatting for other programming languages that can serve as reference materials. For example, the Language Server Protocol, VSCode syntax highlighting extension guide, and Prettier.

Tasks to Complete

jcamiel commented 1 year ago

Thanks for the issue, it's indeed a priority. We want to take our time with it in order to see how an LSP daemon would change our current parser structure. Documentation and research existing implementation is a must have and a mandatory way to begin, as you have noted.