All Projects → galaxyproject → galaxy-language-server

galaxyproject / galaxy-language-server

Licence: Apache-2.0 license
Galaxy Language Server to help in Galaxy (https://galaxyproject.org/) tool wrappers development.

Programming Languages

python
139335 projects - #7 most used programming language
typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to galaxy-language-server

Fsautocomplete
F# language server using Language Server Protocol
Stars: ✭ 208 (+940%)
Mutual labels:  language-server
LanguageServer.NET
A .NET Standard server-side implementation of Language Server Protocol 2.0/3.x infrastructure library.
Stars: ✭ 78 (+290%)
Mutual labels:  language-server
cxxd
C/C++ language server implemented on top of Clang frontend.
Stars: ✭ 145 (+625%)
Mutual labels:  language-server
Ide Python
Python language support for Atom-IDE :atom: 🐍
Stars: ✭ 213 (+965%)
Mutual labels:  language-server
Ocaml Language Server
A language server for OCaml and related languages
Stars: ✭ 238 (+1090%)
Mutual labels:  language-server
sublime-reason
Official Reason plugin for Sublime Text
Stars: ✭ 42 (+110%)
Mutual labels:  language-server
Nox
Nox is a lightweight, high-performance LSP client for Emacs
Stars: ✭ 181 (+805%)
Mutual labels:  language-server
vls
V language server
Stars: ✭ 267 (+1235%)
Mutual labels:  language-server
theia-xtext
A Theia Application with DSL support through an Xtext Language Server
Stars: ✭ 29 (+45%)
Mutual labels:  language-server
candy
🍭 A sweet programming language that is robust, minimalistic, and expressive.
Stars: ✭ 84 (+320%)
Mutual labels:  language-server
Lua Lsp
A Lua language server
Stars: ✭ 219 (+995%)
Mutual labels:  language-server
Vshaxe
Haxe Support for Visual Studio Code
Stars: ✭ 234 (+1070%)
Mutual labels:  language-server
yoda
Experimental: Static Analyzer and Language Server for Ruby
Stars: ✭ 24 (+20%)
Mutual labels:  language-server
Intelephense
Intellisense for PHP
Stars: ✭ 212 (+960%)
Mutual labels:  language-server
typescript-language-server
TypeScript & JavaScript Language Server
Stars: ✭ 1,118 (+5490%)
Mutual labels:  language-server
Vscode As3mxml
ActionScript & MXML language extension for Visual Studio Code. Develop apps for Adobe AIR, Adobe Flash Player, or Apache Royale.
Stars: ✭ 205 (+925%)
Mutual labels:  language-server
anakin-language-server
Yet another Jedi Python language server
Stars: ✭ 27 (+35%)
Mutual labels:  language-server
puppet-editor-services
Puppet Language Server for editors
Stars: ✭ 35 (+75%)
Mutual labels:  language-server
vscode-erlang-lsp
A VSCode extension for Erlang that uses a language server.
Stars: ✭ 16 (-20%)
Mutual labels:  language-server
groovy-language-server
A language server for Groovy
Stars: ✭ 132 (+560%)
Mutual labels:  language-server

Galaxy Tools Extension and Galaxy Language Server

Actions Status License PyPI - Python Version PyPI GitHub release (latest SemVer) Open in Visual Studio Code

This repository contains two projects:

This project has the following main goals:

Please note this is still a work in progress so bugs and issues are expected. If you find any, you are welcome to open a new issue.

Table of Contents

Getting Started

Using the project

If you just want to use the features provided by the Galaxy Language Server, the easiest and recommended option is to install the VSCode extension from the Market or, if you prefer, you can use VSCodium and the Open VSX registry. Additionally, you can download the VSIX package from the releases page and install it manually.

Contributing

If you are considering contributing, please read the contribution guide.

To setup your development environment, please check this guide.

Features

You can watch a (somewhat old) short video with a tour of some of the features of the Galaxy Tools extension here:

Galaxy Tools features video

Tag and attribute auto-completion

Demo feature auto-completion

The tags and attributes are suggested based on the Galaxy.xsd schema. They will appear in the same order that they are declared in the schema, so they can comply with the best practices recommendations defined in the Galaxy IUC Standards Style Guide.

Documentation on Hover

Demo feature hover documentation

The documentation of tags and attributes is retrieved from the Galaxy.xsd schema.

Please note that some elements in the schema are still missing documentation. This will probably be improved over time.

Document validation

Demo feature validation

In addition to basic XML syntax validation, the tools are validated against the Galaxy.xsd schema.

Since version 0.8.0 the full Galaxy linting is directly reported on the document diagnostics.

Document auto-formatting

Demo feature auto-formatting

When the tool file is saved it gets auto-formatted to comply with the Galaxy IUC Standards Style Guide.

Tag auto-closing

Demo feature auto-close tags

Whenever you write a closing (>), the corresponding closing tag will be inserted. You can also type / in an open tag to close it.

Snippets

Demo snippets

Snippets can be really helpful to speed up your tool wrapper development. They allow you to quickly create common blocks and let you enter just the important information by pressing tab and navigating to the next available value.

If you want to add more snippets check the guide in the contribution guidelines.

Embedded syntax highlighting

Demo feature embedded syntax highlighting

Basic support for Cheetah and reStructuredText syntax highlighting inside the <command>, <configfile> and <help> tags. The embedded code should be inside a CDATA block.

Auto-generate tests

Demo feature auto-generate tests

After you define the <inputs> and <outputs> of the tool, you can press Ctrl+Alt+t (or Cmd+Alt+t in Mac) to create a <tests> section with a basic structure and some test cases. This is especially useful when using conditionals and other nested parameters since you can get right away most of the boilerplate XML. You can always change the key bindings to your personal preference, see the documentation.

Auto-generate command section

Demo feature auto-generate command section

Similar to the auto-generate tests command, but this time it will generate boilerplate Cheetah code for the <command> section.

Auto-sort param attributes

Demo feature auto-sort param attributes

Now you can automatically sort the attributes of param elements according to the IUC Coding Style guidelines using a key-shortcut or the command palette. This can be done for each <param> element individually or for the full document.

Run planemo tests in the Test Explorer

Demo feature planemo tests explorer

You can now run planemo test for the currently opened tool directly from the Test Explorer.

  • The tests are automatically discovered by the galaxy-language-server when you open a tool or save the document (this can be controlled by the settings).
  • You can then run all the tests from the Test Explorer by using planemo test in the background. Currently running individual tests is not supported as AFAIK planemo does not have an option to do so at the moment.
  • After successfully running the tests, the results will be displayed in a convenient way directly on your source XML.

The failing tests will be marked in red and the reason for failure can be seen directly beside the test definition (or you can right click the icon next to your test definition and choose Peek Error). You can also directly navigate to each of the tests XML source from the Test Explorer. This can be very convenient especially when having a large number of tests in your tool.

Improved macros support

Since version 0.5.0 we added some interesting features around the use of macros. For example, you can now better troubleshoot validation errors caused by some included macro. The error messages will be more detailed and you can even navigate to a expanded version of the tool to see what the real tool document look like and what was causing the error.

Demo feature expanded macros

There are also a lot of features around macros auto-completion. You can now navigate to macro and token definitions with F12 or get dynamic attribute auto-completion with parametrized macros and more.

Demo feature macros support

Extract macro

You can select (a complete) XML element and then extract it to a local macro (directly in the tool wrapper) or into an external macro file. If there are several imported macro files, you can choose where to put them or if there is no imported file it will be created and imported directly.

Demo feature expanded macros

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].