Skip to content
康小广 edited this page Jan 26, 2021 · 22 revisions

Editor Support

Visual Studio Code

Get the Extension from Visual Studio Marketplace

GNU Emacs

Tested under Linux. Not work for Windows, because it seems that lsp-mode doesn't support socket for Windows.

(add-to-list 'lsp-language-id-configuration '(wolfram-mode . "Mathematica"))

(lsp-register-client
 (make-lsp-client :language-id 'wolfram
                  :new-connection (lsp-tcp-server-command
                                   (lambda (port)
                                     `("wolfram" ;; or "wolframscript"
                                       "-script" ;; or "-file"
                                       "path/to/lsp-wl/init.wls"
                                       ,(concat
                                         "--socket="
                                         (number-to-string port)
                                         ))))
                  :major-modes '(wolfram-mode)
                  :server-id 'lsp-wl
                  ))

(Neo)vim

Use coc.nvim together with coc-lsp-wl.

Troubleshooting

Enable Logging

To reveal the internal debug and kernel message, change info to debug at https://github.com/kenkangxgwe/lsp-wl/blob/master/init.wls#L175 or similar places if you check out other branches. It reads:

    loglevel = ArgumentValue["--log"|"-l", Alternatives @@ LoggingLevels]
        // Replace[_Missing -> "debug"];

You can see the logging message in the output console of the editor. You may also dump it to a file. Uncomment https://github.com/kenkangxgwe/lsp-wl/blob/master/init.wls#L181 or places similar in other branches, so it reads:

    logstreams = {
        OpenWrite[WolframLanguageServer`RootDirectory <> "wlserver.log"],
        First @ Streams["stderr"]
    };

It will be saved to path/to/lsp-wl/wlserver.log.

Cannot start w/ Mathematica 11.2

The Curry issue has been resolved in 0.2.1. If it still happens, please file an issue.

  • Currys has been replaced by lambda expressions project-widely.

    Meanwhile, I figured out that Curry is not so efficient as the lambda function, so I started to transform them back into Function.

    Mathematica 11.2 doesn't have Curry function, so far, you just need to checkout the develop branch, where I implemented my own MyCurry function.

Related Posts

中文 Chinese