Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extra newlines in incorrect format (CRLF) cause wrong LSP highlight locations #460

Open
7 tasks done
space-nuko opened this issue Apr 6, 2023 · 2 comments
Open
7 tasks done

Comments

@space-nuko
Copy link

When submitting issues to this project, please include the following information.

Checklist

  • I have searched both open and closed issues and cannot find a duplicate.
  • I can reproduce the problem with the latest version of the relevant packages.
  • The problem still occurs after I issued M-x tide-restart-server in the buffer where I had the problem.
  • I verified that the version and the configuration file path reported by M-x tide-verify-setup are correct.
  • If tide is reporting an error or warning I think should not be reported, I can run tsc (and tslint, if applicable) without the error or warning I'm seeing in tide.
  • If tide is not reporting an error or warning I think should be reported, tsc (or tslint, if applicable) reports the error or warning I was expecting to see.
  • I am positive the problem does not belong to typescript-mode or tsserver.

Relevant Version Numbers

  • Tide: 4.5.4
  • TypeScript:5.0.3
  • Emacs: 29.0.50

(The list above is minimal. Make sure to include any other version numbers relevant to your report.)

Steps to Reproduce the Bug

I noticed that if my document formatted with LF contains an extra CRLF somewhere (^M) then the highlights become offset and wrong.
2023-04-06 00_51_14-LGraphCanvas ts – Doom Emacs
2023-04-06 00_51_01-LGraphCanvas ts – Doom Emacs

Expected Behavior

Highlights should work

Actual Behavior

The highlights are incorrect

@ananthakumaran
Copy link
Owner

I did a cursory look at the issue. The problem is because of the difference between how emacs and tsserver handle line endings. As you can see in the screenshot, the buffer is not using newline for each ^M, but tsserver seems to treat each as a newline. So most of the tide features won't work properly.

Is this a problem in practice? do you need to have multiple ^M in a single line? Anyhow, I am not sure how to fix the issue in a straightforward way.

@space-nuko
Copy link
Author

This is very much a problem for me still, if there's an extra ^M anywhere in the file then random features like imenu will stop working with tide-build-imenu-index: End of buffer, and any formatting commands will mangle the entire part of the file past the ^M causing me to lose work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants