summaryrefslogtreecommitdiff
path: root/src/user_interface.hh
AgeCommit message (Collapse)Author
2023-03-11Implement bracketed pasteJohannes Altmanninger
Text pasted into Kakoune's normal mode is interpreted as command sequence, which is probably never what the user wants. Text pasted during insert mode will be inserted fine but may trigger auto-indentation hooks which is likely not what users want. Bracketed paste is pair of escape codes sent by terminals that allow applications to distinguish between pasted text and typed text. Let's use this feature to always insert pasted text verbatim, skipping keymap lookup and the InsertChar hook. In future, we could add a dedicated Paste hook. We need to make a decision on whether to paste before or after the selection. I chose "before" because that's what I'm used to. TerminalUI::set_on_key has EventManager::instance().force_signal(0); I'm not sure if we want the same for TerminalUI::set_on_paste? I assume it doesn't matter because they are always called in tandem. Closes #2465
2019-11-22Add support for markup in info boxesMaxime Coste
Fixes #2552
2018-06-03Add MenuStyle::Search that prevents the menu from hiding buffer textMaxime Coste
Fixes #2042
2018-04-29Rework the way UI can trigger a client quittingMaxime Coste
Add a UserInterface::is_ok method and return false on SIGHUP/stdin closing/socket dropping This should be cleaner and more robust than the previous SIGHUP handling code. Fixes #1594
2017-04-12Place hardware terminal cursor at the current main cursor/prompt cursor positionMaxime Coste
Fixes #1318 Also fixes https://gitlab.com/gnachman/iterm2/issues/5408
2017-03-07Replace IdMap with HashMapMaxime Coste
2017-01-08Apply clang-tidy modernize to the codebaseMaxime Coste
2017-01-04Add `Modal` InfoStyle used for bufer reload info boxMaxime Coste
Modal info style wont be replaced by other info boxes. NCursesUI will center that info box. Fixes #1060
2016-11-29Simplify greatly UI input handlingMaxime Coste
This round trip through an input callback expected to call is_key_available and get_key was overcomplicated, just send the keys as they arrive, the client is already buffering due to urgent event mode.
2016-11-29Clean up includes of user_interface.hhMaxime 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-04-11Merge remote-tracking branch 'lenormf/buffer-padding'Maxime Coste
2016-03-07Handle <c-l> redrawing on the server sideMaxime Coste
That way we can force a redraw at any moment, including during batch execution.
2016-02-17Allow users to chose how the buffers are paddedFrank LENORMAND
2015-10-05Use DisplayLine for menu choicesMaxime Coste
2015-09-16Use IdMap instead of UnorderedMap for ui options and env varsMaxime Coste
2015-06-17Move status/mode line drawing as a separate ui methodMaxime Coste
2015-03-09ArrayView content is not const anymoreMaxime Coste
As in upcoming std c++ array_view, ArrayView<T> points to mutable data, use ArrayView<const T> or alias ConstArrayView<T> for const data.
2015-01-14Even more memory trackingMaxime Coste
2015-01-06Rename memoryview to ArrayViewMaxime Coste
2014-12-16Rework hashing, use a more extensible framework similar to n3876 proposalMaxime Coste
std::hash specialization is a pain to work with, stop using that, and just specialize a 'size_t hash_value(const T&)' free function.
2014-11-25Separate events between normal and urgent onesMaxime Coste
Run urgent ones while executing %sh blocks. Fixes #236
2014-11-12Cleanup includesMaxime Coste
2014-11-10Add ui_options option for UserInterface configurationMaxime Coste
ui_options is a std::unordered_map<String, String> that gets forwarded to the user interface. Add support ncurses_status_on_top.
2014-11-10Support hinting if an inline info should be above or below the anchorMaxime Coste
Used by ctags function info, we always want it *above* the opening parenthesis so that it does not hide multi line parameter lists.
2014-11-08Add a MenuDoc style for info box, that will place it next to the menuMaxime Coste
2014-08-12Make safe_ptr able to track callstacksMaxime Coste
The code stays disabled, as the performance penalty is quite high, but can be enabled to help debugging safe pointers.
2014-07-11Rename ColorPair to Face and ColorRegistry to FaceRegistryMaxime Coste
Face also stores the attributes
2014-05-07Refactor LineAndColumn coordinatesMaxime Coste
BufferCoord -> ByteCoord DisplayCoord -> CharCoord Moved their definition along with LineAndColumn into coord.hh
2014-04-30Use StringView in UserInterface and NCursesUIMaxime Coste
2014-04-15Add an explicit refresh method to user interfaceMaxime Coste
With this refresh method user interface can defer updating the display until really needed.
2013-10-11Pass title to UserInterface::info_showMaxime Coste
Move unicode box generation and assistant code as a NcursesUI implementation detail.
2013-09-16remove print_status from UserInterface, pass status line to drawMaxime Coste
Client store the current status line. This way calls to print status do not force the user interface to display directly.
2013-07-26memoryview: always pass by valueMaxime Coste
2013-04-09sort includes directivesMaxime Coste
2013-04-04UserInterface: status line messages are now DisplayLinesMaxime Coste
This add color support for the status line
2013-04-04pass a color pair when displaying an information windowMaxime Coste
2013-04-04Pass a fg and bg color when displaying a menuMaxime Coste
2013-02-18Fix class/struct mismatchesMaxime Coste
2013-01-14move input watching responsibility into UserInterface implementationsMaxime Coste
2012-12-14UserInterface: add info box supportMaxime Coste
using the info command, you can display an arbitrary string in a tooltip box.
2012-10-29NCurses: refactor status line handling, and disambiguate status line from ↵Maxime Coste
mode line
2012-10-28Handle all available input before redrawingMaxime Coste
2012-10-20make UserInterface unaware of Window, only of DisplayBufferMaxime Coste
2012-09-30Menus can be placed anywhere on the screen, and takes a style parameterMaxime Coste
This paves the way for insert mode completion menu using the current prompt menu system.
2012-09-26Move UserInterface out of Client into ContextMaxime Coste
2012-09-24Hide more Client Mode code in the cppMaxime Coste
2012-09-24extract Client virtual methods to a UserInterface classMaxime Coste