 Hi everyone, my name is David López and I'm a software developer at the University of Freiburg and in this quick talk I'm going to show you some of the features of the Galaxy Language Server project. So, what is the Galaxy Language Server? It is an implementation of the Language Server protocol specifically tailored for Galaxy tool wrappers. Many code editors or integrated development environments offer features like how to complete, go to definition, final reference etc. The idea behind this protocol is to define a common interface so these features can be implemented only once and then they can be reused by multiple clients like Amax, Visual Studio Code and so on. Now that we have an idea of what is the Galaxy Language Server, let's see how can we use it. Galaxy Tools is the name of the Visual Studio Code extension that combines the power of Planimo with the Galaxy Language Server to lower the entry barrier for new tool developers and provide a speed boost for the more experienced ones. All of that while trying to focus on best practices recommended by the Intergalactic Utilities Commission. The extension can be installed in Visual Studio Code or Codium and it's available at the OpenBSX registry and the Visual Studio Code marketplace. Now, let's check some of these features in action. The autocomplete feature is quite interesting, especially for new developers. It helps to discover what tags and attributes are allowed depending on the current context and if you are already an expert it can help you type faster. Another interesting feature is the document validation. Whenever you save your tool wrapper it gets validated and reports any found problems or syntax errors, making them easier to spot and fix. Let's try now an alternative. We can use code snippets to create a basic tool structure and quickly fill in the information. You will find a bunch of ready to use code snippets included in extension, but you can also easily create and contribute your own. Now let's see an example using macros. If we import a macros file we can select go to definition or just press F12 and quickly navigate to the imported file. In this example we can see that we have three macros and some tokens already defined. When using the expand tag we can trigger the autocompletion inside the macro attribute and then we will get a list of all the available macros. Sometimes when there are errors in the macros definition it can be difficult to know what exactly went wrong. In this case we can preview the expanded version of the tool wrapper to get an idea of its real structure. If the error message is not enough to identify the problem we can click on it and it will point to the exact line that is causing trouble. Once we have identified the problem we can directly navigate to the specific macro and try to fix the error. Ok, now let's complete our tool wrapper while exporting additional features. We can create a conditional using some snippets to add a bit of complexity to our example. Within the snippet we can quickly navigate to and fill out its placeholder by pressing the tab button. Next we are going to create the command section. We will use another feature to auto-generate some boilerplate cheetah code for us. We can run the command from the panel or by using the corresponding keys or cut. As you can see the boilerplate cheetah code will take into account the different inputs and outputs. Alright, our simple tool is almost done but we are still missing a really important part, the test. As we did with the command section we can also auto-generate some tests scaffolding. Again the code generator will take into account our tool inputs and outputs and will try to create the test case for its branch of the conditional. Now let's run the test. We can do so by using the integrated test explorer. It will run the planimo test command internally and after some time the result will be presented in line beside your test case. Also it will allow you to quickly navigate to its test. This can be really useful when there are many test cases and some of them fail. If you want to you can always conveniently access the planimo detailed HTML wrapper. Once we know what made our test fail we can fix it, save the document and run them again using a keys or cut. And that's it for now. There are some more features that we didn't cover in this presentation and hopefully many more to come in the future. So thanks for your attention. I really hope you enjoy it.