haskell / vscode-haskell

VS Code extension for Haskell, powered by haskell-language-server
https://marketplace.visualstudio.com/items?itemName=haskell.haskell
Other
552 stars 89 forks source link

Error when renaming a file (changing only case) #403

Open DanTup opened 3 years ago

DanTup commented 3 years ago

When renaming a file test/foo.hs to test/Foo.ts I get an error and the rename fails:

Unable to move/copy 'vscode-remote://dev-container+2f55736572732f64616e6e792f4465762f44616e6e792f4861736b656c6c54657374696e67/workspaces/HaskellTesting/tests/foo.hs' because target 'vscode-remote://dev-container+2f55736572732f64616e6e792f4465762f44616e6e792f4861736b656c6c54657374696e67/workspaces/HaskellTesting/tests/Foo.hs' already exists at destination.

I'm running in a container using VS Code's Remote - Containers functionality, using the following devontainer JSON:

{
    "name": "Haskell",
    "image": "haskell:8",
    "settings": {
        "[haskell]": {
            "editor.insertSpaces": true,
        }
    },
    "extensions": [
        "haskell.haskell"
    ],
}

I had to use haskell:8 as using haskell:latest complained that some components were not available on Linux using the latest version.

I'm not sure if this is an issue with the VS Code extension or something else (like the LSP server) so if this is not the right place to raise this, please point in the right direction (this is the first time I've tried to use Haskell so I'm not very familiar with the tools yet) - thanks!

DanTup commented 3 years ago

Possibly related, I delete the file and tried to recreate it as Foo.hs, but that also failed:

Unable to create file 'vscode-remote://dev-container+2f55736572732f64616e6e792f4465762f44616e6e792f4861736b656c6c54657374696e67/workspaces/HaskellTesting/tests/Foo.hs' that already exists when overwrite flag is not set

The file does not exist (if I run ls tests in the terminal, it shows no files). I even tried restarting the VS Code (to restart the server) and it continues to fail with the same error.

(Rebuilding the container with the VS Code command did fix it though).