Package: galaxy-language-server
Galaxy Language ServerLanguage Serverimplementation written in Python (pygls) to assist in the development ofGalaxy tool wrappers.Dependenciespygls: generic implementation of theLanguage Server Protocolin Python.lxml: Python library for processing XML files.anytree: Python library with an easy to use tree structure.galaxy-tool-util: theGalaxytool utilities for Python.Getting StartedCheck theGetting Startedsection in thecontributingdocs.How to manually run the serverUsually, theclientwill 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 usingPython3.8+):# Create a virtual environment and activate itpython-mvenvmyenvsource./myenv/bin/activateOption 1: Installing from PyPi# Install the language server and its dependenciespipinstallgalaxy-language-serverOption 2: Building from source# Clone the repogitclonehttps://github.com/galaxyproject/galaxy-language-server.git# Go to the server directorycdgalaxy-language-server/server# Install the dependenciespython-mpipinstall-r./requirements.txtRun the server# Run the server with the default parameterspython-mgalaxylsBy 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-mgalaxyls--tcp--host=127.0.0.1--port=2087To 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.12.0] - 2023-10-14AddedDocument Symbol provider (#247).[0.11.0] - 2023-08-30FixedFix macros detection condition (#239).AddedSupport for links to navigate to test-data files (#231).ChangedImprove attribute with enum auto-completion (#241).Remove dead link (#238).[0.10.2] - 2023-03-12FixedFix parameters and models conversion between client and server (#224).[0.10.1] - 2023-03-04FixedConfig loading issue resulting in unhandled exception with new configuration models (#220).[0.10.0] - 2023-02-25ChangedUpdate pygls to version 1.0.1. This enables Python 3.11 support and other features (#216).[0.9.0] - 2022-10-20AddedNew setting to silently install the language server (#210).ChangedCode quality: fix e2e tests for linting (#211).[0.8.0] - 2022-10-02AddedFull Galaxy tool linting integration (#204).ChangedCode quality: refactor validation system (#205).Code quality: setup isort (#203).[0.7.1] - 2022-01-31FixedCheck valid document extension before checking contents when validating documents (#189).[0.7.0] - 2022-01-29AddedNew custom command to discover tests in a single tool file to support the new Testing API in the client (#183).ChangedUpdatepyglsdependency and fix how custom commands are registered (#179).FixedAn error creatingCode Actionsto extract macros when selecting a text range in some situations (#178).[0.6.1] - 2021-09-26ChangedRevertpyglsversion to0.11.1. This should temporarily fix an issue that prevents using any custom command in the language server (#172).[0.6.0] - 2021-09-12AddedCode Action language feature to be able to extract macros out of valid blocks of XML (#165).[0.5.3] - 2021-07-09FixedAn error when generating tests from inputs that contained boolean values different thantrueorfalselikeTrueorFalse(#156).[0.5.2] - 2021-06-08FixedLine offset mismatch between diagnostic line and expanded document (#150).[0.5.1] - 2021-06-03FixedClear diagnostics when the document is not valid (#143).Fix empty document validation (#144).[0.5.0] - 2021-05-13AddedNew feature to navigate to (or peek)macroandtokendefinitions, open referenced macro files directly from the<import>tag and previewtokenvalues on hover (#127).A custom command to generate the expanded version of a tool document (#128).Existing macro names are now suggested when manually invoking IntelliSense withCtrl+Space(#132).Support for dynamic token parameter attributes in<expand>elements (#133).ChangedUpdated main dependencies to latests versions, speciallypygls=0.10.3which introduced some backward incompatible changes (#126).FixedWhen manually invoking IntelliSense withCtrl+Spacein the middle of a tag or attribute the auto-completion was suggesting wrong values (#129).Auto-closing tags when writing/or>was broken in previous versions (#137).[0.4.0] - 2021-02-15AddedA custom command for tests discovery that provides information about the test definitions of all the opened tool documents in the virtual workspace (#110).A custom command to reorder<param>attributes according to the IUC Style Guidelines (#104).FixedUnexpected errors when generating code were failing silently without providing feedback to the user. Now an error notification will be displayed to the user (#113).Elements inside macros were not correctly associated with their XSD definition (#111).An bug in the search algorithm when analyzing the tool input trees with nested conditional sharing the same 'when' value. This was causing the code generation commands to fail (#109).[0.3.2] - 2021-01-24FixedThe server was ignoring tool wrappers with syntax errors instead of reporting those syntax errors (#100).[0.3.1] - 2021-01-09FixedThe autocompletion of tags and attributes was leaking into theCDATAsections (#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-01AddedA custom command to auto-generate the<command>section with boilerplate Cheetah template based on the currentinputsandoutputsdefined in the tool (#77).A custom command to auto-generate<test>cases based on the currentinputsandoutputsdefined in the tool (#73).FixedAvoid processing unknown XML documents (akanottool wrappers) (#75).Broken XML parsing when more than one comment block was present in the document (#70).[0.2.1] - 2020-11-22FixedThe documentation displayed when hovering an element now shows the correct documentation instead ofNo documentation available(#64).[0.2.0] - 2020-11-13AddedClient settings to control completion features (#56).ChangedThe XML parser has been replaced with a better implementation (#55).[0.1.2] - 2020-10-25RemovedRemoved unused functionXsdTree.find_node_by_name().[0.1.1] - 2020-10-24AddedSupport autocompletion for<expand>element.ChangedUpdated dependencies to latest versions.FixedFix error when hovering<expand>elements or it's atributes (#41).[0.1.0] - 2020-10-14AddedBasic 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.