SlideShare a Scribd company logo
© 2019 Seven Bridges
Rabix Benten
An experimental language server for the Common Workflow Language
Kaushik Ghose (Seven Bridges)
CWL mini-conference, Boston Oct 2019
https://github.com/rabix/benten
© 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
Expression evaluation
© 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

More Related Content

PDF
Rabix Benten: A language server for Common Workflow Language
PDF
Feedback from an eclipse plugin developer to provide support to large set of ...
PDF
How to contribute textual tooling for apache camel in several id es
PDF
API Contract as Code: Rapid Development with OpenAPI
PPTX
ASP.NET Core 101
PPTX
React native
PDF
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
PPTX
Kotlin Multiplatform
Rabix Benten: A language server for Common Workflow Language
Feedback from an eclipse plugin developer to provide support to large set of ...
How to contribute textual tooling for apache camel in several id es
API Contract as Code: Rapid Development with OpenAPI
ASP.NET Core 101
React native
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
Kotlin Multiplatform

What's hot (19)

PPTX
What is Kotlin Multiplaform? Why & How?
PDF
Kotlin native for iOS and Android
PPT
SynapseIndia dotnet development framework
PPTX
Ruby for Android Apps Development Services
PDF
Game development using Flutter
ODP
PPTX
Introduction on Mobile development
PDF
201801 CSE240 Lecture 04
PPTX
Presentation1
PPTX
Using Ruby in Android Development
PDF
Headless Drupal: A modern approach to (micro)services and APIs
PDF
Why companies like Google, Alibaba and UOL choose Flutter
PPTX
PPTX
QBASIC
PPTX
Intro to Flutter
PPTX
APIdays Paris 2014 - The State of Web API Languages
PDF
Flutter A year of creativity!
PDF
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
PPT
Basic C# and .net
What is Kotlin Multiplaform? Why & How?
Kotlin native for iOS and Android
SynapseIndia dotnet development framework
Ruby for Android Apps Development Services
Game development using Flutter
Introduction on Mobile development
201801 CSE240 Lecture 04
Presentation1
Using Ruby in Android Development
Headless Drupal: A modern approach to (micro)services and APIs
Why companies like Google, Alibaba and UOL choose Flutter
QBASIC
Intro to Flutter
APIdays Paris 2014 - The State of Web API Languages
Flutter A year of creativity!
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
Basic C# and .net
Ad

Similar to Benten: An experimental language server for CWL (20)

PDF
Visual studio 2019 launch
PDF
Web programming by kiran and team
PDF
Rcs project Training Bangalore
PDF
DOT NET TRaining
PPTX
AEM Rich Text Editor (RTE) Deep Dive
PDF
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
DOC
Best programming languages for android app development.doc
PPTX
Vb6 vs vb.net....(visual basic) presentation
PPTX
Visual Studio 2012 introduction
PPTX
用Flutter 開發Linux Desktop Application
PDF
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
PDF
Best things to know about .net framework
PDF
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
PDF
Top 10 IDEs for React.js Developers in 2021
PDF
.Net framework vs .net core a complete comparison
PDF
WSO2Con2024 - Low-Code Integration Tooling
PDF
Ten compelling reasons to learn .net framework
PPTX
Max’s Birthday Adventure: #19 Kochi : Anypoint Code Builder
PPTX
Unit 2 l1
PPTX
Progamming Path.pptx
Visual studio 2019 launch
Web programming by kiran and team
Rcs project Training Bangalore
DOT NET TRaining
AEM Rich Text Editor (RTE) Deep Dive
Managing Omnichannel Experiences with Adobe Experience Manager (AEM)
Best programming languages for android app development.doc
Vb6 vs vb.net....(visual basic) presentation
Visual Studio 2012 introduction
用Flutter 開發Linux Desktop Application
Tim Hall [InfluxData] | InfluxDays Keynote: InfluxDB Roadmap | InfluxDays NA ...
Best things to know about .net framework
Portable batch and streaming pipelines with Apache Beam (Big Data Application...
Top 10 IDEs for React.js Developers in 2021
.Net framework vs .net core a complete comparison
WSO2Con2024 - Low-Code Integration Tooling
Ten compelling reasons to learn .net framework
Max’s Birthday Adventure: #19 Kochi : Anypoint Code Builder
Unit 2 l1
Progamming Path.pptx
Ad

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
project resource management chapter-09.pdf
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Zenith AI: Advanced Artificial Intelligence
A Presentation on Artificial Intelligence
project resource management chapter-09.pdf
Assigned Numbers - 2025 - Bluetooth® Document
WOOl fibre morphology and structure.pdf for textiles
DP Operators-handbook-extract for the Mautical Institute
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Enhancing emotion recognition model for a student engagement use case through...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
1. Introduction to Computer Programming.pptx
1 - Historical Antecedents, Social Consideration.pdf
Getting Started with Data Integration: FME Form 101
Mushroom cultivation and it's methods.pdf
Chapter 5: Probability Theory and Statistics
Accuracy of neural networks in brain wave diagnosis of schizophrenia
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Zenith AI: Advanced Artificial Intelligence

Benten: An experimental language server for CWL

  • 1. © 2019 Seven Bridges Rabix Benten An experimental language server for the Common Workflow Language Kaushik Ghose (Seven Bridges) CWL mini-conference, Boston Oct 2019 https://github.com/rabix/benten
  • 2. © 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
  • 3. © 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
  • 4. © 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
  • 5. © 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/
  • 6. © 2019 Seven Bridges Rabix Benten: A language server for CWL https://github.com/rabix/benten (Apache 2.0) Benten running with VS Code
  • 7. © 2019 Seven Bridges Jump to definition
  • 8. © 2019 Seven Bridges Autocomplete for run field is a File picker
  • 9. © 2019 Seven Bridges Connection validation and hints
  • 10. © 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.
  • 11. © 2019 Seven Bridges Expression evaluation
  • 12. © 2019 Seven Bridges Document structure
  • 13. © 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
  • 14. © 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
  • 15. © 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