A language server for Galaxy (https://galaxyproject.org) tool wrappers
Project description
Galaxy Language Server
Language Server implementation written in Python (pygls) to assist in the development of Galaxy tool wrappers.
Dependencies
- pygls: generic implementation of the Language Server Protocol in Python.
- lxml: Python library for processing XML files.
- anytree: Python library with an easy to use tree structure.
- galaxy-tool-util: the Galaxy tool utilities for Python.
Getting Started
Check the Getting Started section in the contributing docs.
How to manually run the server
Usually, the client will be in charge of running the server when it is needed, but, in case you want to run it manually for some reason, you can use the following commands:
In any case, it is recommended to create a Python virtual environment first (assuming you are using Python3.8+
):
# Create a virtual environment and activate it
python -m venv myenv
source ./myenv/bin/activate
Option 1: Installing from PyPi
# Install the language server and its dependencies
pip install galaxy-language-server
Option 2: Building from source
# Clone the repo
git clone https://github.com/galaxyproject/galaxy-language-server.git
# Go to the server directory
cd galaxy-language-server/server
# Install the dependencies
python -m pip install -r ./requirements.txt
Run the server
# Run the server with the default parameters
python -m galaxyls
By default, the server uses IO pipes to communicate with the client. If you want to use TCP, you can pass additional parameters, for example:
python -m galaxyls --tcp --host=127.0.0.1 --port=2087
To check if everything went ok, you can look at the content of the server log file (galaxy-language-server.log
) that should contain the following lines:
INFO:pygls.server:Starting server on 127.0.0.1:2087
INFO:pygls.server:Shutting down the server
INFO:pygls.server:Closing the event loop.
Galaxy Language Server Changelog
[0.3.2] - 2021-01-24
Fixed
- The server was ignoring tool wrappers with syntax errors instead of reporting those syntax errors (#100)
[0.3.1] - 2021-01-09
Fixed
-
The autocompletion of tags and attributes was leaking into the
CDATA
sections (#86). -
Weird behavior of the autoclosing tag feature (#86).
-
When using a custom command to auto-generate the
<command>
or the<tests>
sections (with a tool document containingmacros
), the insert position inside the document for the code snippets was offset (#83).
[0.3.0] - 2021-01-01
Added
- A custom command to auto-generate the
<command>
section with boilerplate Cheetah template based on the currentinputs
andoutputs
defined in the tool (#77). - A custom command to auto-generate
<test>
cases based on the currentinputs
andoutputs
defined in the tool (#73).
Fixed
- Avoid processing unknown XML documents (aka not tool wrappers) (#75).
- Broken XML parsing when more than one comment block was present in the document (#70).
[0.2.1] - 2020-11-22
Fixed
- The documentation displayed when hovering an element now shows the correct documentation instead of
No documentation available
(#64).
[0.2.0] - 2020-11-13
Added
- Client settings to control completion features (#56).
Changed
- The XML parser has been replaced with a better implementation (#55).
[0.1.2] - 2020-10-25
Removed
- Removed unused function
XsdTree.find_node_by_name()
.
[0.1.1] - 2020-10-24
Added
- Support autocompletion for
<expand>
element.
Changed
- Updated dependencies to latest versions.
Fixed
- Fix error when hovering
<expand>
elements or it's atributes (#41).
[0.1.0] - 2020-10-14
Added
- Basic tag and attribute auto-completion.
- Auto-close tags feature.
- XML tool validation when opening and saving file.
- Basic validation of macros.
- Auto-formatting document when saving file.
- Display tag and attribute documentation when hovering.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file galaxy-language-server-0.3.2.tar.gz
.
File metadata
- Download URL: galaxy-language-server-0.3.2.tar.gz
- Upload date:
- Size: 34.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eacd132412324225325634203ae2ed57eaad08a6dd035807bdf07c4674d4f15c |
|
MD5 | 6af8e78f0f2554520802bbc37a98c18a |
|
BLAKE2b-256 | fa908ff5e8a63cac0cabe66f24cdb8a4a99c09870749c36dab6ad7440f8257cd |
File details
Details for the file galaxy_language_server-0.3.2-py3-none-any.whl
.
File metadata
- Download URL: galaxy_language_server-0.3.2-py3-none-any.whl
- Upload date:
- Size: 46.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17991afaca8d699b0a018d068ac5c0b164085587fc419ec62b7e69ae679cced0 |
|
MD5 | 1ea64780ae4b7b337946e8eef1ffc7c1 |
|
BLAKE2b-256 | 0c7ce1fb4464709371d621e8856544c18fac0052af92d22b615e1e1cc4be4404 |