crystal-lang-tools / vscode-crystal-lang

Yet another VSCode extension for Crystal Programming Language
https://marketplace.visualstudio.com/items?itemName=crystal-lang-tools.crystal-lang
MIT License
279 stars 57 forks source link

After code is corrected and saved, previous error/problem is still persistent #195

Open wileycoleman opened 8 months ago

wileycoleman commented 8 months ago

Describe the bug After correcting code to eliminate an error, and saving the fie, the previous problem and flagging of the problem does not go a way.

To Reproduce Make a simple type error in any code. For example use "string" instead of String. Save the file and see the proper error message and red underlining appear. Now change the code from "string" to "String". Save the file. The error message and red underlining do not go away. Close VScode and re-open it. The error message and underlining finally go away.

Expected behavior Once error is corrected and file is saved, the red underlining and error messages should go away.

Piece of Code see screenshot

Screenshots Screenshot from 2024-03-28 20-57-44

Desktop (please complete the following information):

Additional context Add any other context about the problem here.

nobodywasishere commented 8 months ago

Can you post the full output of the Crystal output channel?

wileycoleman commented 8 months ago

The output tab is blank.

nobodywasishere commented 8 months ago

You need to select "Crystal" from the dropdown at the top right of the panel

wileycoleman commented 8 months ago

[Crystal] extension loaded [Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Hover] error: undefined [Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Hover] error: undefined [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Dependencies] error: In src/epub_reader.cr:1:24

1 | def testing_ext(file : string) ^ Error: unexpected token: "string"

[Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null [Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: \"string\""}]

[Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Dependencies] error: In src/epub_reader.cr:1:24

1 | def testing_ext(file : string) ^ Error: unexpected token: "string"

[Hover] error: undefined [Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null [Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: \"string\""}]

[Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Dependencies] error: In src/epub_reader.cr:1:24

1 | def testing_ext(file : string) ^ Error: unexpected token: "string"

[Hover] error: undefined [Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null [Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: \"string\""}]

[Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Dependencies] error: In src/epub_reader.cr:1:24

1 | def testing_ext(file : string) ^ Error: unexpected token: "string"

[Hover] error: undefined [Problems] (epub_reader) $ /usr/bin/crystal build src/epub_reader.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null [Problems] Error: [{"file":"/home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr","line":1,"column":24,"size":null,"message":"unexpected token: \"string\""}]

[Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Hover] getting context... [Dependencies] epub_reader $ /usr/bin/crystal tool dependencies /home/cynthia/projects/crystal/epub_reader/src/epub_reader.cr -f flat --no-color [Hover] error: undefined

wileycoleman commented 8 months ago

The above is from changing "String" to "string" then back. (saving file in between actions.)

nobodywasishere commented 8 months ago

Thank you. In the meantime for things to work you can disable a lot of the features to just use snippets and syntax highlighting. Check this repo's README for more info

nobodywasishere commented 5 months ago

I've also run into some weird ghosting with Crystal sometimes recently. Does it still happen if you try building from the command line? crystal clear_cache may help.

gregawoods commented 1 month ago

Came here to report the same thing. I had a syntax error in a function definition (space required before colon in type restriction), fixed the problem, and the error hasn't gone away.

nobodywasishere commented 1 month ago

@gregawoods If there are other problems in the file or potentially the workspace, the error might not go away until all them are resolved. A few questions to help diagnose:

You can also try deleting the cache for this project (~/.cache/crystal-name-of-project on linux/macos) and reloading vscode to see if the error shows up still.

gregawoods commented 1 month ago

Here's the console output. The actions I took here are: Intentionally introduce a syntax error, hit save, fix the error, hit save again.

[Dependencies] hello_crystal $ /Users/gregwoods/.asdf/shims/crystal tool dependencies /Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr -f flat --no-color 
[Dependencies] error: In src/hello_crystal.cr:5:27

 5 | def self.say_hello(name :String)
                             ^
Error: space required after colon in type restriction

[Problems] (hello_crystal) $ /Users/gregwoods/.asdf/shims/crystal build src/hello_crystal.cr --no-debug --no-color --no-codegen --error-trace -f json -o /dev/null 
[Problems] Error: [{"file":"/Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr","line":5,"column":27,"size":null,"message":"space required after colon in type restriction"}]

[Dependencies] hello_crystal $ /Users/gregwoods/.asdf/shims/crystal tool dependencies /Users/gregwoods/Source/gregawoods/hello_crystal/src/hello_crystal.cr -f flat --no-color 

Now, I've been playing around with the settings.json. I set both crystal-lang.hover and crystal-lang.dependencies to false and set crystal-lang.main to my main file, and now it's working properly again. I do not know if that is a permanent fix, or maybe I just kicked a cache somewhere by doing that, but either way things seem fairly happy right now.