ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

LSP-julia

by sublimelsp ST4

Julia support for Sublime's LSP plugin using LanguageServer.jl

Details

Installs

  • Total 1K
  • Win 400
  • Mac 298
  • Linux 321
May 28 May 27 May 26 May 25 May 24 May 23 May 22 May 21 May 20 May 19 May 18 May 17 May 16 May 15 May 14 May 13 May 12 May 11 May 10 May 9 May 8 May 7 May 6 May 5 May 4 May 3 May 2 May 1 Apr 30 Apr 29 Apr 28 Apr 27 Apr 26 Apr 25 Apr 24 Apr 23 Apr 22 Apr 21 Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13
Windows 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 2 1 0 0 2 4 5 1 1 2 1 2 0 0 0 0 0 3 1 1 1 1 0 1 0 1 0 3 1
Mac 0 0 1 1 0 0 0 0 0 1 0 3 6 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 2 0 0 1 0 1 2 0 0 2 0 1 0 1 0
Linux 0 0 0 1 0 1 1 1 1 0 0 1 2 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 0 0 3 1 0 0 0 0 1 0 0 1 1 0 0

Readme

Source
raw.​githubusercontent.​com

LSP-julia

License

A plugin for the LSP client in Sublime Text with support for the Julia language server.

Requirements & Installation

  • Julia must be installed on your machine. If the julia executable is not in your PATH, you need to provide the full path to the executable in the LSP-julia package settings.
  • The Julia package from Package Control should be installed for syntax highlighting and allows the language server to start for Julia source files.
  • Install the LSP package and LSP-julia from Package Control. When a Julia file is opened for the first time after installing this package, the language server will automatically be installed via the Julia package manager (this can take 1-2 minutes).
  • Optionally install the Terminus package from Package Control for a simple Julia REPL integration and some functionality to run code (see below).

Features

Most of the standard LSP features like auto-completion, documentation on hover, or goto definition are supported by the Julia language server. Some features like diagnostics require that a folder was opened in Sublime Text, and will not work in single file mode.

LSP-julia provides additional commands which are available from the command palette:

Command label Key binding Description
LSP-julia: Change Current Environment none Select the Julia project environment you are working in. The packages from this environment are used by the language server to provide autocomplete suggestions and for diagnostics/linting. Dependent on the number of packages, it might take a while for the server to do a package indexing process in the background, after switching to a different environment.
LSP-julia: Documentation none Search the Julia documentation and open the results in a tab. You can also right-click on a word in a Julia file and select “Show Documentation” from the context menu to open the corresponding documentation page.
LSP-julia: Open Julia REPL in Panel1 none Open a Julia REPL, started in the directory of the active file, or focus if already running.
LSP-julia: Open Julia REPL in Tab1 none Same as above, just use a normal tab instead of the bottom panel for the REPL.
LSP-julia: Select Code Block none Select the function or code block at the current cursor position. For multiple active cursors, only the topmost cursor position is taken into account.
LSP-julia: Run Code Block1 Alt+Enter If text is selected, run it in a Julia REPL. Otherwise, run the code block containing the current cursor position and move curser to the next block.
LSP-julia: Run Code Cell1 Alt+Shift+Enter If text is selected, run it in a Julia REPL. Otherwise, run the code cell containing the current cursor position and move curser to the next cell. Code cells are signalized with a specially formatted comment at the start of a line: ##, #%% or # %%.
LSP-julia: Run Testitem none Show a quick panel with all available @testitems in Julia files (see description below).

Commands marked with a 1 are only available if you have the Terminus package installed.

To add or adjust key bindings for the commands, edit the .sublime-keymap file for your OS in your Packages/User folder. For an example refer to the Default.sublime-keymap file in this repository, and for the command names from this package see LSP-julia.sublime-commands.

Run individual test items

LSP-julia has a custom feature, similar to the Julia extension for VS Code, which allows to run individual testsets from a Julia package directly from the editor UI.

For this to work, the tests must be contained within a @testitem block, which is basically a replacement for @testset. For an example see the screenshot below or read the detailed description at https://github.com/julia-vscode/TestItemRunner.jl#writing-tests.

Note The @testitem has an isolated scope. The package to be tested is loaded implicitly through using. To access unexported symbols, either export them or call them by prepending the module name. (i.e. MyPackage.foo())

A @testitem can be run via the “Run Test” link shown in an annotation on the righthand side of the editor, or via the “LSP-julia: Run Testitem” command from the command palette. Possible test failures or errors will be shown as annotations at the position in the code where they occured.

Note The @testitem feature only works in project environments, i.e. you must have opened a folder in the sidebar which contains a Project.toml file with a name and uuid field.

To completely disable this feature, you can toggle off the following entry in the LSP-julia.sublime-settings file:

{
  "initializationOptions": {
    "julialangTestItemIdentification": false
  }
}

Testitem preview

Frequently Asked Questions

I have deleted or cleaned up my .julia directory. Now the language server doesn't start anymore.

Delete the LSP-julia folder at the following location: * on Windows: %LocalAppData%/Sublime Text/Package Storage/LSP-julia * on Linux: ~/.cache/sublime-text/Package Storage/LSP-julia * on macOS: ~/Library/Application Support/Sublime Text/Package Storage/LSP-julia

Then restart Sublime Text and open a Julia file to re-install the language server.

The embedded Julia REPL doesn't start if Julia was installed via juliaup.

This seems to be a bug/limitation in the Python 3.3 API environment, which is used by the Terminus package, when resolving symlinks.

As a workaround, you can manually specify the full path (without symlink) to the Julia executable in the LSP-julia package settings (Preferences: LSP-julia Settings from the command palette). Here is an example on Windows:

Error: language “jsonc” is not supported
{
    "julia_executable_path": "C:\\Users\\<username>\\.julia\\juliaup\\julia-1.9.0+0.x64.w64.mingw32\\bin\\julia.exe",
}