You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I deleted a bunch of text from a file (select text + backspace), this caused CodeEdit to crash with the following error:
Thread 57: Fatal error: Duplicate elements of type 'LanguageLayer' were found in a Set.
This usually means either that the type violates Hashable's requirements, or
that members of such a set were mutated after insertion.
at editState.touchedLayers.insert(layer) (line 63 in TreeSitterClient+Edit)
To Reproduce
Open file, delete bunch of text. I'm not sure if it's easily reproducible
I attached a video showing the issue. It crashes when I press backspace.
I'm not sure, but it seems to only happen when I delete text that is at the start of the file. I haven't seen it happen when I delete text in the middle of the file.
This should be a simple fix, it just needs a check to the editState if the layer has been marked as touched yet. Someone could maybe look at the hashable implementation on LanguageLayer but it should just be hashing a unique UUID.
I have a hunch this is fixed with #263. My guess is that two async operations were inserting into the same dictionary and causing a conflict that way. We'll keep it open for a bit and if it doesn't re-appear I'll close this.
Im getting a similar problem. There is no crash. The code and line numbers become invisible. If I completely change the code by selecting another snippet (and the id changes). The code becomes visible again.
Bug only happens when I delete a lot of code at the same time (multiple line). (latest version 0.9.1)
I can also create another issue post with more information.
I attached a video of my problem and a picture of my code. Maybe I am using it wrong.
When I delete a big chunk of code and that code is deleting the first line. All the code becomes invisible. And when it's invisible and I press enter, and then delete. It becomes visible again.
I still get the same crashes very often, exactly how @ignaciojuarez is desribing them. For example, after selecting all and hitting delete. Or deleting the first or last line.
Hello @thecoolwinter. Thanks for the help!
The problem is still there. Same as the video. ;(
I just updated to 0.10.0 and updated to using Attributes for the ThemeEditor.
I am having a hard time replicating it, but the issue you mentioned strikes me as a problem with CodeEditTextView, not CodeEditSourceEditor. Usually when text is disappearing like that, it indicates that a bug has occurred while updating the internal text layout structures.
I've now found a fix and have a reproducible test case. I'll merge it into the text view package. I'm also going to close this issue, since it's gotten a little off track from the original issue.
Activity
nicholasss commentedon Jun 20, 2023
Should there be debugging for beta versions of Xcode and macOS - with future changes and all?
It may not apply to this, due to the error text.
thecoolwinter commentedon Jul 11, 2023
This should be a simple fix, it just needs a check to the
editStateif the layer has been marked as touched yet. Someone could maybe look at the hashable implementation onLanguageLayerbut it should just be hashing a unique UUID.thecoolwinter commentedon Jul 11, 2023
Could you clarify? Do you mean debugging in the editor?
TheNightmanCodeth commentedon Nov 3, 2023
I'm also experiencing this. It seems like adding a "guard set doesn't contain what we're adding" or similar would fix this
thecoolwinter commentedon Sep 8, 2024
I have a hunch this is fixed with #263. My guess is that two async operations were inserting into the same dictionary and causing a conflict that way. We'll keep it open for a bit and if it doesn't re-appear I'll close this.
ignaciojuarez commentedon Feb 1, 2025
Im getting a similar problem. There is no crash. The code and line numbers become invisible. If I completely change the code by selecting another snippet (and the id changes). The code becomes visible again.
Bug only happens when I delete a lot of code at the same time (multiple line). (latest version 0.9.1)
I can also create another issue post with more information.
I attached a video of my problem and a picture of my code. Maybe I am using it wrong.
video (bug):
Screen.Recording.2025-02-01.at.9.56.48.AM.mov
my code:

ignaciojuarez commentedon Feb 3, 2025
When I delete a big chunk of code and that code is deleting the first line. All the code becomes invisible. And when it's invisible and I press enter, and then delete. It becomes visible again.
Screen.Recording.2025-02-02.at.8.20.14.PM.mov
ignaciojuarez commentedon Feb 3, 2025
Also I sometimes get this error. When the code/numbers are invisible, and I keep typing or deleting.
nkleemann commentedon Feb 3, 2025
I still get the same crashes very often, exactly how @ignaciojuarez is desribing them. For example, after selecting all and hitting delete. Or deleting the first or last line.
thecoolwinter commentedon Feb 4, 2025
@ignaciojuarez @nkleemann That crash you posted looks like what #263 fixes. I'll be making a release tonight that'll include that patch.
The layout bug I'd guess is different. I've been able to reproduce it sporadically, but that screen recording may help.
I'll take another look at it now, it may be an issue with CodeEditTextView rather than this package but I'll update this issue when I have more info.
thecoolwinter commentedon Feb 4, 2025
Sorry, meant #285
thecoolwinter commentedon Feb 5, 2025
That release is live (tagged as 0.10.0), @ignaciojuarez does that fix your editing crash?
ignaciojuarez commentedon Feb 5, 2025
Hello @thecoolwinter. Thanks for the help!
The problem is still there. Same as the video. ;(
I just updated to 0.10.0 and updated to using Attributes for the ThemeEditor.
ignaciojuarez commentedon Feb 28, 2025
Are you not able to replicate it @thecoolwinter?
Maybe I im using the call incorrectly.
I get multiple prints: "TreeSitterClient setting up with language: swift" Every time I delete or type.
I am also using ".id(snippet.id)". I have not found another way to change the snippet/code reference.
thecoolwinter commentedon Apr 8, 2025
I am having a hard time replicating it, but the issue you mentioned strikes me as a problem with CodeEditTextView, not CodeEditSourceEditor. Usually when text is disappearing like that, it indicates that a bug has occurred while updating the internal text layout structures.
Move Layout Updates to NSTextStorage Delegate (#82)
thecoolwinter commentedon Apr 14, 2025
I've found a way to replicate it, it looks like the internal layout storage is getting corrupted. I'll report more as I find more.
thecoolwinter commentedon Apr 14, 2025
I've now found a fix and have a reproducible test case. I'll merge it into the text view package. I'm also going to close this issue, since it's gotten a little off track from the original issue.
Fix Text Disappearing (CodeEditApp#88)
ignaciojuarez commentedon Apr 29, 2025
Hello @thecoolwinter. I am in version 12.0. And Im still encountering this issue. I have not found a way to fix this.