Comments (5)
undo in general is problematic its seems
from prosesitter.nvim.
to reproduce:
example:
// misspelled
// longmisspelled
//
fn main() {
}
- set check scheduling to 3 seconds
- wait till extmarks/hl are set
- delete and undo and delete
longmisspelled
within 3s - wait 3s
this will give error:
[FATAL zo 05 sep 2021 14:58:50 CEST] ...rosesitter.nvim/lua/prosesitter/on_event/marks/marks.lua:20: could not place extmark
buf_id: 1
row: 1
col_start: 3
col_end: 16
[FATAL zo 05 sep 2021 14:58:50 CEST] ...rosesitter.nvim/lua/prosesitter/on_event/marks/marks.lua:55: mask_id: col value outside range
[FATAL zo 05 sep 2021 14:58:50 CEST] ...rosesitter.nvim/lua/prosesitter/on_event/marks/marks.lua:56: mark: { 1, 0, {
end_col = 0,
end_row = 1
} }
[FATAL zo 05 sep 2021 14:58:50 CEST] ...rosesitter.nvim/lua/prosesitter/on_event/marks/marks.lua:57: hl: {
buf_id = 1,
end_col = 17,
group = "SpellBad",
hover_txt = "Did you really mean 'longmisspeled'?",
row_id = 3,
start_col = 5
}
from prosesitter.nvim.
Analysis:
placeholder extmark gets created
text on it is send for checking
line with placeholder extmark gets deleted
results from checking come back and get row via placeholder extmark
row has content of smaller length, hl extmark can not be placed
from prosesitter.nvim.
Implemented:
- on line deletion remove any placeholder extmark leave any hl-extmarks alone. However any changes done before the delete will not be checked after undo.
Non-Solutions:
- wrap highlighting in pcal; this will only fix the case the line width changes
- add hash and only hl if hash of checked text matches current text; this will block any highlights appearing while editing a line
from prosesitter.nvim.
TODO hook into undo event to schedule a check
from prosesitter.nvim.
Related Issues (20)
- Latex query should not capture math txt HOT 1
- Latex brackets, parenthesis etc not passed to spellchecker HOT 2
- attempt to index local parser (a nil value) HOT 3
- (Latex?) brackets introduce space HOT 3
- Hover window shows TODO instead of lint source HOT 1
- Python docstring has unpaired " warning HOT 4
- PsDisable not removing highlights HOT 2
- Deleting gives error HOT 2
- attempt to index a nil value HOT 1
- strip urls and paths from strings HOT 1
- Ignore symbols from code HOT 1
- More specific lint target
- Nav and Hover get different ExtMarks HOT 1
- No linked issue assert HOT 2
- Add debug flag and debug asserts
- Lintreq contains duplicates HOT 1
- Disable sometimes malfunctions HOT 1
- backend install crashing with indent-blankline installed HOT 5
- Recognise python docstrings
- Keep track of performance metrics HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prosesitter.nvim.