`Haskell` extension for `VSCode` not working on `Linux` - visual-studio-code

I installed ghcup and:
Stack 2.9.1
HLS 1.8.0
cabal 3.6.2
GHC 9.2.5
All of them are the recommended versions(I verified it using ghcup tui). Then I installed the Haskell extension in VSCode. Unfortunately, it doesn't work. I get syntax highlighting (from the Haskell Syntax Highlighting extension, which seems to be automatically installed alongside the Haskell extension) but there is no Intellisense, no code completion, no error detection and no interactive mode (-->>> evaluation). I experimented with different folders and haskell files. The filetype is correct, because every time I open a .hs file, the Haskell extension checks for updates. I even installed Codium, because I suspected a fault in VSCode, but it was the same there as well.
The hsl language server doesn't seem to be working in Neovim, either. I uninstalled ghcup (ghcup nuke) and reinstalled again. The result is exactly the same. I prepended the PATH and chose vanilla and non-vanilla Stack integration in either installations.
Am I doing something wrong?
OS: Linux Mint on Ubuntu 20.04.1, kernel 5.15.0-56.

After around 10 tries, I managed to fix the problem. It turned out I had three problems:
I had only 12 GB free on my Linux partition, but it seems more are needed. I realised it, when it turned out some haskell-language-server files were missing. I enlarged my Linux partition (something I should have done months ago). The new installation installed all files
The Haskell Language Server HLS was not added to the PATH. I solved it by putting this snippet in ~/.ghcup/config.yaml:
"haskell.serverEnvironment": {
"PATH": "${HOME}/.ghcup/bin:$PATH"
}
The server was now discovered by the Haskell VS Code extension but crashed 5 times and gave up on trying. Restarting it manually didn't help. I opened the logs: View->Output->Haskell and saw the error:
haskell-language-server-wrapper: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by haskell-language-server-wrapper)
It turns out, my Linux Mint distribution uses GLIBC_2.31, not 2.32. This is a very important library, which most applications on the system use. If you are a newbie, it is strongly advised that you DO NOT update it manually.
Instead, what I did, was install a version of the HLS, which used GLIBC_2.31. This problem occured in September and was "fixed" but apparently not very well. There are two options:
download the HLS deb10 version manually (didn't work for me):
ghcup install hls -u https://downloads.haskell.org/~hls/haskell-language-server-1.8.0.0/h
download using ghcup tui HLS version 1.7.0.0 (or whatever newest, which uses your glibc version) and a GHC, which supports that particular version of the HLS (in my case 9.0.2).
I think it's a good idea to preemptively reinstall the extension, in case it used the PATH to configure the HLS, so that its settings are restored to default. It takes up to 20 seconds to initialize the server, so be patient. You can see what's happening in the Output window and verify there are no more errors.
I hope this helps.

Related

Making VS Code Remote extension work with GLIBC 2.17 installed in non standard locations

I'm trying to use VSCode Remote extension to connect to a remote host that runs on RHEL/CentOS 6, but it fails to connect since CentOS 6 ships with GLIBC 2.12 and GLIBCXX 3.4.1. As mentioned in this post, in order to get the extension to work, the workaround is to install GLIBC>=2.17 and GLIBCXX>=3.4.18.
Unfortunately, I don't have sudo access for the server, so I won't be able to update these libraries using the bash script provided in the link. Also, in this SO post, the author says not to update the system GLIBC since it can break down system applications. That being said, I've tried something different -- I extracted those rpm packages, as described in this blog, inside my home folder. I've then updated the env variables PATH and LD_LIBRARY_PATH in ~/.bash_profile to point to these new locations. But the node binary (in VS Code Remote) still can't find these libraries.
Is there a way to let the node binary know where to look for these libraries? More precisely, can someone explain how I can make this extension work without sudo access?
I've got it to work by installing gcc and glibc using Linuxbrew. See this post for more details: https://github.com/microsoft/vscode-remote-release/issues/103#issuecomment-546551293.
Couple of things to take note of:
Node binary versions in VS Code Server may vary between commits. In the GitHub comment above, the author uses node#10 -- you may replace it with node#12; everything would still work.
Make sure glibc and gcc are properly installed using linuxbrew. This step is key.

Error "end of central directory record signature not found" while installing ionide-fsharp in vscode

I have installed VS Code version 1.8.1. Machine is Windows 7, 64 bit. While installing ionide-fsharp extension, I am getting error "end of central directory record signature not found". It seems version 1.7.2 of VS Code works, however this issue probably seems fixed for version 1.8.0 see this git link. Any idea on how to get the extn installed?
Thanks
Found a workaround for this. Downloaded '.vsix' file of ionide-fs from this link. In VS Code Extensions tab, there is an option 'Install from VSIX'. That worked. So in case anyone is unable to install from vscode extensions tab directly(i.e. from Marketplace), they may try this way of installing an extension.
Just for information, I was getting the same error for version 1.7.2 of vscode as well while trying to install from Marketplace.
Seems there were bugs that exist in past versions, due to the embedded browser and other reasons; these have since been fixed.
The above solution seems a common way to install a troublesome plugin.
However, there is a long standing reason for this error, running out of disk space.
As of v1.54.1 (2021/03) and it turns out this can happen if your disk/home folder can run out of space during download OR install.
https://github.com/microsoft/vscode/issues/118711

Eclipse not recognising express/node

I have been using Linux for less than 24 hours, so please, if there is anymore information I should provide, do be quite specific about how to get that information.
I've been trying to install Node.js, express.js and eclipse. As you can see, ubuntu does recognise both node.js and express as installed on my system (I think!) and I got the Nodeclipse-extension for eclipse, but still Eclipse doesn't seem to recognise either node.js or express (see my image below). I also want to add that the time occurrence of the error, I was trying to build a Node.js Express Project.
At this point, how do I go about debugging the situation? The folder location shown in the image does not fully exist. I can only go as far as [...]/bin/ - I have been looking at error messages similar to mine, and it seems like people are getting such errors because they're lacking an installation, however, from my screenshot provided, I would think everything is installed as needed.
I am using a native 64-bit windows laptop with Linux (Ubuntu) installed through a virtualbox. Ubuntu is 14.04 LTS and just 32-bit, as I don't have spare 2 gb ram to give the 64-bit version. Sadness.
I'd appreciate any help!
In Eclipse Windows -> Preferences -> Nodeclipse
check what is configured for Node and Express
Read more on http://www.nodeclipse.org/
I found a solution, which worked for me:
WINDOWS:
I did double installations of the needed modules. They were both located in C:/Users/X/AppData/Roaming, in the Eclipse directories and finally in C:/Program Files/nodejs. When I deleted all the node_modules, besides critical ones for nodejs to function and then ran Eclipse with Nodeclipse, it seemed to function and Eclipse automaticly defined folders in its own subdirectory, in which Express were located.
UBUNTU:
Delete all node_modules files and run Eclipse with Nodeclipse. See the windows explanation for a more detailed overview. Same problem and solution seemed to be present for both systems. Do note that the file directories are of course not completely interchangeable. You'll need to locate your instances of node_module.

How to enable autocomplete in GoClipse?

The instructions how to install GoClipse have been followed.
I'm not getting any autocomplete stuff happening at all, either for local packages that I write, for built in stuff, or for GAE stuff (I have downloaded Go src to the SDK folder as the wiki states).
Are there any settings that I can check to ensure it is set up correctly? Is autocomplete supposed to work in the current version?
As the GoClipse with AppEngine article you linked to says:
We assume the reader has a working copy of GoClipse running in their Eclipse environment.
so that’s not the article you want to refer to. Instead, check for GoClipse.
The auto completion is named content assist in eclipse. The GoClipse features state:
Now delivered with content assist via Gocode for Windows, OS X 64bit, and Linux 64bit.
Gocode is an auto-completion daemon. So you will also have to install and run that one besides your eclipse + GoClipse.
There is a bug in the current version of Goclipse for the Linux platform. It currently delivers a prebuilt version of gocode for Windows, 64 bit OS X, and 64 bit Linux. I have only been able to test it locally with limited resources, so I really depend on users to report the problems they find at:
http://code.google.com/p/goclipse/issues/list
If you are having problems, I urge you to download and install gocode into your $GOROOT/bin directory and see if that helps. Otherwise, the fix will come in the next release in a few days.
Also, sorry for causing you any trouble and thank you for trying Goclipse.
If you are not using a gocode upstream (but the one shipped with Eclipse) on Linux you are also no be able to build your application with CRTL+F11, although just clicking in Run->Run is going to work.
So, I strongly recommend to update your gocode on Linux, as simple as:
$ sudo GOPATH=/opt/go/ go get -u github.com/nsf/gocode

Launching an arbitrary executable over a file on Netbeans

We want to add command-line support to Netbeans, as in being able to run any program (using the full path of the current file as the argument) directly from the IDE. The same way you can do it already on Notepad++ with the Run tool.
Apparently there is a plugin called VCS Generic Command-Line Support that offers this functionality, but when we try to install it we get this error message:
Some plugins require Master Filesystem to be installed
The plugin Master Filesystem is
requested in version >= 1.1 but only
2.15.2 was found.
Any ideas?
EDIT
I Did some googling as you got me interested pretty much everything i found was in refernce to NetBeans 5.x or below... Im thinking maybe its not compatible with 6 - but thats just a guess.
Looks like a version incompatability with "Master Filesystem". Maybe they are checking the version improperly or perhaps they really mean it needs to be 1.x >= 1.1. Do you have the newest version of VCS Plugin?
As an aside if Im going to have to chek this out... ive been dying for external tool support like in my beloved Eclipse :-)