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

html attributes in markdown causes lockup #8939

Closed
galsjel opened this issue Nov 28, 2023 · 1 comment
Closed

html attributes in markdown causes lockup #8939

galsjel opened this issue Nov 28, 2023 · 1 comment
Labels
C-bug Category: This is a bug

Comments

@galsjel
Copy link

galsjel commented Nov 28, 2023

Summary

I tested this without using an LSP and had the same issue.

Reproduction Steps

Save the file below with any name ending in .md and open it. Then navigate to the first quotation.

# The moment you touch the `"` after `class=` with your cursor, Helix Editor will lock up.

<div>
<img class="large-img" src="image.png"/>
</div>

Helix log

2023-11-28T15:43:48.309 helix_lsp::transport [ERROR] marksman err <- "[15:43:48 INF] <LSP Entry> Starting Marksman LSP server: {}\r\n"
2023-11-28T15:52:08.654 helix_tui::backend::crossterm [DEBUG] The keyboard enhancement protocol is not supported in this terminal (checked in 100ns)
2023-11-28T15:52:08.654 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:08.654 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:08.656 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:08.656 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:08.910 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:10.676 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:10.676 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:11.126 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:11.126 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:11.379 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:11.379 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:14.583 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:14.583 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:15.085 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:15.085 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:15.343 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:16.158 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.158 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.245 globset [DEBUG] glob converted to regex: Glob { glob: "*.{zip,gz,bz2,zst,lzo,sz,tgz,tbz2,lz,lz4,lzma,lzo,z,Z,xz,7z,rar,cab}", re: "(?-u)^[^/]*\\.(?:cab|rar|7z|xz|Z|z|lzo|lzma|lz4|lz|tbz2|tgz|sz|lzo|zst|bz2|gz|zip)$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: false, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('.'), Alternates([Tokens([Literal('c'), Literal('a'), Literal('b')]), Tokens([Literal('r'), Literal('a'), Literal('r')]), Tokens([Literal('7'), Literal('z')]), Tokens([Literal('x'), Literal('z')]), Tokens([Literal('Z')]), Tokens([Literal('z')]), Tokens([Literal('l'), Literal('z'), Literal('o')]), Tokens([Literal('l'), Literal('z'), Literal('m'), Literal('a')]), Tokens([Literal('l'), Literal('z'), Literal('4')]), Tokens([Literal('l'), Literal('z')]), Tokens([Literal('t'), Literal('b'), Literal('z'), Literal('2')]), Tokens([Literal('t'), Literal('g'), Literal('z')]), Tokens([Literal('s'), Literal('z')]), Tokens([Literal('l'), Literal('z'), Literal('o')]), Tokens([Literal('z'), Literal('s'), Literal('t')]), Tokens([Literal('b'), Literal('z'), Literal('2')]), Tokens([Literal('g'), Literal('z')]), Tokens([Literal('z'), Literal('i'), Literal('p')])])]) }
2023-11-28T15:52:16.245 globset [DEBUG] built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
2023-11-28T15:52:16.245 helix_term::ui [DEBUG] file_picker init 1.4578ms
2023-11-28T15:52:16.247 globset [DEBUG] built glob set; 0 literals, 1 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
2023-11-28T15:52:16.247 globset [DEBUG] glob converted to regex: Glob { glob: "**/.env.*", re: "(?-u)^(?:/?|.*/)\\.env\\.[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('.'), ZeroOrMore]) }
2023-11-28T15:52:16.247 globset [DEBUG] glob converted to regex: Glob { glob: "**/vite.config.js.timestamp-*", re: "(?-u)^(?:/?|.*/)vite\\.config\\.js\\.timestamp\\-[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('v'), Literal('i'), Literal('t'), Literal('e'), Literal('.'), Literal('c'), Literal('o'), Literal('n'), Literal('f'), Literal('i'), Literal('g'), Literal('.'), Literal('j'), Literal('s'), Literal('.'), Literal('t'), Literal('i'), Literal('m'), Literal('e'), Literal('s'), Literal('t'), Literal('a'), Literal('m'), Literal('p'), Literal('-'), ZeroOrMore]) }
2023-11-28T15:52:16.247 globset [DEBUG] glob converted to regex: Glob { glob: "**/vite.config.ts.timestamp-*", re: "(?-u)^(?:/?|.*/)vite\\.config\\.ts\\.timestamp\\-[^/]*$", opts: GlobOptions { case_insensitive: false, literal_separator: true, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, Literal('v'), Literal('i'), Literal('t'), Literal('e'), Literal('.'), Literal('c'), Literal('o'), Literal('n'), Literal('f'), Literal('i'), Literal('g'), Literal('.'), Literal('t'), Literal('s'), Literal('.'), Literal('t'), Literal('i'), Literal('m'), Literal('e'), Literal('s'), Literal('t'), Literal('a'), Literal('m'), Literal('p'), Literal('-'), ZeroOrMore]) }
2023-11-28T15:52:16.247 globset [DEBUG] built glob set; 3 literals, 5 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 3 regexes
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.eslintignore: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.eslintrc.cjs: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.git: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.gitignore: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.gitlab-ci.yml: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.ignore: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.npmrc: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.prettierignore: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.prettierrc: Ignore(IgnoreMatch(Hidden))
2023-11-28T15:52:16.247 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\.svelte-kit: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("C:\\Users\\dane\\Desktop\\GitLab\\medievalsoftware\\site\\.gitignore"), original: "/.svelte-kit", actual: ".svelte-kit", is_whitelist: false, is_only_dir: false })))
2023-11-28T15:52:16.248 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\node_modules: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("C:\\Users\\dane\\Desktop\\GitLab\\medievalsoftware\\site\\.gitignore"), original: "node_modules", actual: "**/node_modules", is_whitelist: false, is_only_dir: false })))
2023-11-28T15:52:16.250 ignore::walk [DEBUG] ignoring C:\Users\dane\Desktop\GitLab\medievalsoftware\site\static: Ignore(IgnoreMatch(Gitignore(Glob { from: Some("C:\\Users\\dane\\Desktop\\GitLab\\medievalsoftware\\site\\.ignore"), original: "static/", actual: "**/static", is_whitelist: false, is_only_dir: true })))
2023-11-28T15:52:16.250 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.250 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.500 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:16.500 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.500 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.514 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:16.514 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.631 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.631 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.827 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.828 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.899 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:17.899 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.088 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.088 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.150 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.150 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.304 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.304 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.381 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.381 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.529 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.529 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.779 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:18.780 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.780 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.781 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:18.781 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:19.476 helix_vcs [INFO] file is untracked
2023-11-28T15:52:19.476 helix_vcs [INFO] failed to open diff base for C:\Users\dane\Desktop\GitLab\medievalsoftware\site\src\posts\rune-synergy-devblog-8.md
2023-11-28T15:52:19.480 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2023-11-28T15:52:19.480 helix_lsp::transport [INFO] marksman -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"positionEncodings":["utf-8","utf-32","utf-16"]},"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"isPreferredSupport":true,"resolveSupport":{"properties":["edit","command"]}},"completion":{"completionItem":{"deprecatedSupport":true,"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"versionSupport":true},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":true},"signatureHelp":{"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown"],"parameterInformation":{"labelOffsetSupport":true}}}},"window":{"workDoneProgress":true},"workspace":{"applyEdit":true,"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":false},"executeCommand":{"dynamicRegistration":false},"inlayHint":{"refreshSupport":false},"symbol":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true,"failureHandling":"abort","normalizesLineEndings":false,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"helix","version":"23.10 (f6021dd0)"},"processId":5664,"rootPath":"C:\\Users\\dane\\Desktop\\GitLab\\medievalsoftware\\site","rootUri":"file:///C:/Users/dane/Desktop/GitLab/medievalsoftware/site","workspaceFolders":[{"name":"site","uri":"file:///C:/Users/dane/Desktop/GitLab/medievalsoftware/site"}]},"id":0}
2023-11-28T15:52:19.480 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:19.481 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:19.681 helix_lsp::transport [ERROR] marksman err <- "[15:52:19 INF] <LSP Entry> Starting Marksman LSP server: {}\r\n"
2023-11-28T15:52:19.702 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:20.232 helix_lsp::transport [INFO] marksman <- {"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":1},"hoverProvider":true,"completionProvider":{"triggerCharacters":["[","#","("]},"definitionProvider":true,"referencesProvider":true,"documentSymbolProvider":true,"workspaceSymbolProvider":true,"codeActionProvider":{"resolveProvider":false},"renameProvider":{"prepareProvider":true},"semanticTokensProvider":{"legend":{"tokenTypes":["class","class","enumMember"],"tokenModifiers":[]},"range":true,"full":{"delta":false}},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true},"fileOperations":{"didCreate":{"filters":[{"pattern":{"glob":"**/*.{md,markdown}","matches":"file","options":{"ignoreCase":true}}}]},"didDelete":{"filters":[{"pattern":{"glob":"**/*.{md,markdown}","matches":"file","options":{"ignoreCase":true}}}]}}}}}}
2023-11-28T15:52:20.232 helix_lsp::transport [INFO] marksman <- {"capabilities":{"codeActionProvider":{"resolveProvider":false},"completionProvider":{"triggerCharacters":["[","#","("]},"definitionProvider":true,"documentSymbolProvider":true,"hoverProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"semanticTokensProvider":{"full":{"delta":false},"legend":{"tokenModifiers":[],"tokenTypes":["class","class","enumMember"]},"range":true},"textDocumentSync":{"change":1,"openClose":true},"workspace":{"fileOperations":{"didCreate":{"filters":[{"pattern":{"glob":"**/*.{md,markdown}","matches":"file","options":{"ignoreCase":true}}}]},"didDelete":{"filters":[{"pattern":{"glob":"**/*.{md,markdown}","matches":"file","options":{"ignoreCase":true}}}]}},"workspaceFolders":{"changeNotifications":true,"supported":true}},"workspaceSymbolProvider":true}}
2023-11-28T15:52:20.232 helix_lsp::transport [INFO] marksman -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2023-11-28T15:52:20.232 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: None, method: "initialized", params: None })))
2023-11-28T15:52:20.232 helix_lsp::transport [INFO] marksman -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"markdown","text":"# The moment you touch the `\"` after `class=` with your cursor, Helix Editor will lock up.\n\n<div>\n<img class=\"large-img\" src=\"image.png\"/>\n</div>\n","uri":"file:///C:/Users/dane/Desktop/GitLab/medievalsoftware/site/src/posts/rune-synergy-devblog-8.md","version":0}}}
2023-11-28T15:52:20.275 helix_term::application [DEBUG] received editor event: Redraw
2023-11-28T15:52:20.276 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.276 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.356 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.356 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.602 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.602 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.820 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:20.820 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.074 helix_term::application [DEBUG] received editor event: IdleTimer
2023-11-28T15:52:21.136 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.137 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.365 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.365 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.564 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.565 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.774 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.774 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.950 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:21.950 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.132 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.133 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.292 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.293 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.469 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.469 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.671 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.671 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.870 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:22.870 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0
2023-11-28T15:52:23.089 helix_view::document [DEBUG] id 2 modified - last saved: 0, current: 0

Platform

Windows

Terminal Emulator

Windows Terminal Version: 1.18.2822.0

Installation Method

Scoop

Helix Version

helix 23.10 (f6021dd)

@galsjel galsjel added the C-bug Category: This is a bug label Nov 28, 2023
@galsjel galsjel changed the title html attributes in markdown causes lockup html attributes in markdown causes lockup Nov 28, 2023
@the-mikedavis
Copy link
Member

Duplicate of #8709 - if you build from source this will be solved. It's a bug in a dependency that we had to downgrade before the release. We will cut a new release when the dependency also cuts a release but in the meantime you will need to build from source to avoid this.

@the-mikedavis the-mikedavis closed this as not planned Won't fix, can't repro, duplicate, stale Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug
Projects
None yet
Development

No branches or pull requests

2 participants