common-workflow-lab / cwl-language-server

A Language Server for CWL
Apache License 2.0
3 stars 2 forks source link

Implement validation using schema salad #11

Open tom-tan opened 5 years ago

tom-tan commented 5 years ago

By achieving this, we do not have to implement other validation schemes.

tom-tan commented 5 years ago

There is a decision to be made.

manabuishii commented 5 years ago

I think to use schema-salad is good. Because, I'm worry about the gap between schema-salad and generated code.

tetron commented 5 years ago

The generated code should be faster for validating documents, which would help the language server give real-time feedback. I recommend that solution.

However, the code generation framework probably needs some additional work to produce the same quality error messages as using schema-salad-tool.

tom-tan commented 5 years ago

@tetron Thank you for your suggestion! We will work on it using generated code.

However, the code generation framework probably needs some additional work to produce the same quality error messages as using schema-salad-tool.

Are there any issues filed in schema-salad repository or can you show concrete examples that produce different quality error messages?

tom-tan commented 5 years ago

I found there are several implementation issues:

I will consider how to fix them and will send pull requests if possible.

tom-tan commented 5 years ago

There is alternative to write a language server: https://github.com/openlawlibrary/pygls

tom-tan commented 5 years ago

There is alternative to write a language server: https://github.com/openlawlibrary/pygls

It was done by #12.

tom-tan commented 5 years ago

The codegen-ed parser does not work with the functions such as to_one_line_messages because its error messages are quite different from the output of the original schema-salad-tool. It means that we have to implement another parser for the exception messages from the codegen-ed parser...

tom-tan commented 5 years ago

Now the main blocker is closed but there is another minor issue to be solved.