Home / Companies / Warp / Blog / May 2023

May 2023 Summaries

2 posts from Warp

Filter
Month: Year:
Post Summaries Back to Blog
Subshell support has been added to Warp, allowing users to "Warpify" their bash, zsh, or fish subshells and access core features even when working in a nested session. This includes modern IDE-style output, blocks, autocompletions, workflows, AI Command Search, and more. Warp now recognizes certain commands as "subshell-compatible" and prompts users to Warpify them. Users can also add custom bash/zsh/fish commands for Warpification or blocklist specific commands from being Warpified. This feature is highly requested and beneficial for developers working with subshells in their workflows.
May 23, 2023 346 words in the original blog post.
Grids are fundamental building blocks for terminals, providing a two-dimensional array of characters that enable basic operations like entering commands and receiving output. In Warp, the grid is especially important as it separates commands into blocks consisting of three grids each. The efficiency of terminal operations such as reading data from the shell, scrolling through content, and resizing the screen or splitting panes depends on the implementation of the grid. Warp's grid implementation optimizes for specific operations like scrolling by rotating the underlying vector, which allows efficient scrolling at the cost of added complexity in index conversion. The terminal reads streamed input from the shell and writes it character-by-character to the specified grid location. In the worst-case scenario, expanding the vertical grid dimension requires memory movement. Resizing a grid is another essential operation that comes with its own performance trade-offs. Warp stores grids at the dimensions of the pane in which they render, allowing horizontal limits to be imposed during resizing rather than rendering. Overall, terminal grid design should balance competing priorities and optimize for specific operations while minimizing resulting costs.
May 04, 2023 1,280 words in the original blog post.