© 2019 Seven Bridges
Rabix Benten
An experimental language server for the Common Workflow Language
Kaushik Ghose (Seven Bridges)
© 2019 Seven Bridges
Common Workflow Language
Widely accepted standard for
describing analysis tools and
workflows.
Same description file can be
run on different workflow
engines, on different
backends
© 2019 Seven Bridges
Rabix Composer: Visual programming in CWL
https://github.com/rabix/composer (Apache 2.0)
● Visual programming IDE
● Build workflows
intuitively
● Don't have to remember
CWL syntax
© 2019 Seven Bridges
Some users prefer to code CWL directly
We would like to have code-intelligence features for CWL, just like we have
for R, Python etc. for such users
© 2019 Seven Bridges
Language Server
● One backend program
● Runs outside the editor
● Uses a standard protocol
to provide language
specific code features to
multiple editors/IDEs
language server
https://langserver.org/
© 2019 Seven Bridges
Rabix Benten: A language server for CWL
https://github.com/rabix/benten (Apache 2.0) Benten running with VS Code
© 2019 Seven Bridges
Jump to definition
© 2019 Seven Bridges
Autocomplete for run field is a File picker
© 2019 Seven Bridges
Connection validation and hints
© 2019 Seven Bridges
Syntax highlighting (VS Code)
Visual Studio Code is a very well designed coding platform with a lot
of attention paid to detail. Here for example, JS highlighting comes for
free by describing it as an embedded language inside the main
grammar.
© 2019 Seven Bridges
Document structure
© 2019 Seven Bridges
Does the language server concept live up to the dream?
Benten running with VIhttps://github.com/rabix/benten/blob/master/docs/vim.md
© 2019 Seven Bridges
Relation to Rabix Composer
● Composer has a code pane
● Does not preserve original YAML
● Attaches metadata to CWL code
● Embeds all linked workflows
● Orders YAML systematically
● Code pane uses language server
● Composer specific metadata is hidden
● Do not embed linked files
Aspiration
© 2019 Seven Bridges
Thanks!
https://github.com/rabix/benten
● Benten enables code intelligence features for CWL across
editors
● This is an early stage release - feedback is most welcome
● Help welcome - help getting Benten to work with your
favorite code editor

Rabix Benten: A language server for Common Workflow Language

  • 1.
    © 2019 SevenBridges Rabix Benten An experimental language server for the Common Workflow Language Kaushik Ghose (Seven Bridges)
  • 2.
    © 2019 SevenBridges Common Workflow Language Widely accepted standard for describing analysis tools and workflows. Same description file can be run on different workflow engines, on different backends
  • 3.
    © 2019 SevenBridges Rabix Composer: Visual programming in CWL https://github.com/rabix/composer (Apache 2.0) ● Visual programming IDE ● Build workflows intuitively ● Don't have to remember CWL syntax
  • 4.
    © 2019 SevenBridges Some users prefer to code CWL directly We would like to have code-intelligence features for CWL, just like we have for R, Python etc. for such users
  • 5.
    © 2019 SevenBridges Language Server ● One backend program ● Runs outside the editor ● Uses a standard protocol to provide language specific code features to multiple editors/IDEs language server https://langserver.org/
  • 6.
    © 2019 SevenBridges Rabix Benten: A language server for CWL https://github.com/rabix/benten (Apache 2.0) Benten running with VS Code
  • 7.
    © 2019 SevenBridges Jump to definition
  • 8.
    © 2019 SevenBridges Autocomplete for run field is a File picker
  • 9.
    © 2019 SevenBridges Connection validation and hints
  • 10.
    © 2019 SevenBridges Syntax highlighting (VS Code) Visual Studio Code is a very well designed coding platform with a lot of attention paid to detail. Here for example, JS highlighting comes for free by describing it as an embedded language inside the main grammar.
  • 11.
    © 2019 SevenBridges Document structure
  • 12.
    © 2019 SevenBridges Does the language server concept live up to the dream? Benten running with VIhttps://github.com/rabix/benten/blob/master/docs/vim.md
  • 13.
    © 2019 SevenBridges Relation to Rabix Composer ● Composer has a code pane ● Does not preserve original YAML ● Attaches metadata to CWL code ● Embeds all linked workflows ● Orders YAML systematically ● Code pane uses language server ● Composer specific metadata is hidden ● Do not embed linked files Aspiration
  • 14.
    © 2019 SevenBridges Thanks! https://github.com/rabix/benten ● Benten enables code intelligence features for CWL across editors ● This is an early stage release - feedback is most welcome ● Help welcome - help getting Benten to work with your favorite code editor