summaryrefslogtreecommitdiff
path: root/src/window.cc
AgeCommit message (Collapse)Author
2017-10-12Refactor column highlighter to make it more robustMaxime Coste
Support arbitrary orders for column highlighters (it was previously failing when column highlighters were not applied in column order). Fix show_matching tab handling at the same time (horizontal scrolling, tab characters and show_matching were behaving badly). Window highlighting now runs user highlighters, then built-ins for each phases, instead of running all phases for user highlighters, then all phases for built-ins. We now consider unprintable character to be 1-column width as we know we will display them as "�". Fixes #1615 Fixes #1023
2017-06-16Hide info/menu when they are anchored to an invisible buffer coordMaxime Coste
Fixes #1444
2017-06-16Fix some remaining uses of invalid atom coordinatesMaxime Coste
2017-06-15Go back to window lines ending at one past the end of the buffer lineMaxime Coste
Change Buffer::iterator_at so that this case is tolerated, and fixes the coord to next line start instead of clamping to last line char.
2017-06-15Change window display to not use invalid buffer coordinatesMaxime Coste
Fixes #1435
2017-06-09Fix wrapping supportMaxime Coste
2017-06-09Rework partial line display logicMaxime Coste
Instead of highlighting full lines and then trim them to make them fit in the window, highlight only the visible portion, and rely on the compute_display_setup system introduced for wrapping to setup our buffer range correctly
2017-06-07Use microseconds instead of milliseconds for built-in profilingMaxime Coste
2017-05-08Move SimpleHighlighter as an implementation detailMaxime Coste
2017-05-07Slight highlighting related code cleanupMaxime Coste
2017-05-07Ensure window position line is inside bufferMaxime Coste
2017-05-07Move passes logic to the base Highlighter classMaxime Coste
Validate that childs of HighlighterGroup are matching its passes.
2017-05-07Make scrolling around work more correctly with wrappingMaxime Coste
2017-05-07Make Wrap highlighter only wrap on window width.Maxime Coste
2017-05-07Introduce highlighting phases and display setup computationMaxime Coste
Highlighters now run in 3 phases: Wrap, Move, and Colorize. That way we guarantee the wrap highlighter runs first, then eventual line numbers/flags, and finally the colorizers. We also run a `compute_display_setup` method thats responsible for computing the lines that will be displayed, eventually scrolling the view to ensure the cursor is visible.
2017-05-07Do not use any display information to determine where the cursor movesMaxime Coste
2017-03-16Try to clean up option include a bitMaxime Coste
2016-12-06Small formating fixMaxime Coste
2016-11-28Add more memory domains to certain dataMaxime Coste
2016-11-24Forward client name to contexts created for write-allMaxime Coste
Fixes #937
2016-11-14Propagate the hooks disabled state through prompt, menu, and command executionMaxime Coste
Maintain it as well during buffer creation even if the hooks are not executed in client context. Fixes #818
2016-10-13Rename DisplayAtom::Types to avoid conflicts with struct BufferRangeMaxime Coste
2016-10-01Support codepoints of variable widthMaxime Coste
Add a ColumnCount type and use it in place of CharCount whenever more appropriate, take column size of codepoints into account for vertical movements and docstring wrapping. Fixes #811
2016-07-28Add a char_length(Buffer&, const ByteCoord&, const ByteCoord&) utilMaxime Coste
2016-07-24Introduce chrono.hhMaxime Coste
2016-05-14Delay window deletion until we get back to main loopMaxime Coste
Avoid WinResize hooks while redrawing, ensure window resize only take place while handling user input. Fixes #672
2016-05-09Keep a pointer to current client in windows so that window hooks can access itMaxime Coste
2016-05-06time window display buffer update in debug profile modeMaxime Coste
2016-05-04Expose a WinResize hook when a window changes sizeMaxime Coste
Fixes #661
2016-02-27Remove direct access to ui, go through clientMaxime Coste
Client can now update menu/info positions when the window move around.
2016-02-03Do not use a hash to determine if a window must be redrawnMaxime Coste
Collision happens Fixes #569
2015-11-02Support horizontal centering in view commands (using m)Maxime Coste
Fixes #442
2015-08-09clamp coordinates find_buffer_coordMaxime Coste
2015-07-22Fix potential crashMaxime Coste
2015-07-08Fix scrolling down hiding the cursor with scrolloff == 0Maxime Coste
2015-07-07Change scrolloff behaviour, allow displaying pas the end of bufferMaxime Coste
Fixes #306
2015-07-06Fix window position computation that could get negative with big scroll offsetsMaxime Coste
2015-06-22Refactor slightly window redrawingMaxime Coste
2015-06-21Rework window redraw handling, should redraw window less oftenMaxime Coste
2015-06-17Move status/mode line drawing as a separate ui methodMaxime Coste
2015-06-04Add support for Default faceMaxime Coste
The Default face is used to set default color values, if set to default (the default), refers to terminal default colors.
2015-04-23Use a struct for BufferRange rather than std::pairMaxime Coste
2015-04-23NCurses: When mode line is too long, trim it rather hiding itMaxime Coste
2015-03-31Use format for {Win,Buf}SetOption hooks descriptionMaxime Coste
2015-03-22Impreove Window::buffer_coord behaviour with invalid coordsMaxime Coste
2015-03-18Add a display coord to buffer coord method to WindowMaxime Coste
2015-03-05Use a IdMap for storing hooksMaxime Coste
The number of hook names is small (<20), using an UnorderedMap is overkill, and prevents using StringView for key searching.
2014-12-18Do not register timers for transient input handlersMaxime Coste
2014-12-02Pass a BufferRange to highlighters, fix subregionsMaxime Coste
Regions highlighter can now correctly be applied to only subrange of the buffer, fixing some corner cases in recursive regions.
2014-10-30Add scope class and encapsulate Options, Keymaps, Aliases and Hooks in itMaxime Coste