initial commit [ci skip]

This commit is contained in:
rsteube 2025-05-04 13:15:59 +00:00
commit 7ca43780dc
234 changed files with 43930 additions and 0 deletions

1
.nojekyll Normal file
View File

@ -0,0 +1 @@
This file makes sure that Github Pages doesn't process mdBook's output.

208
404.html Normal file
View File

@ -0,0 +1,208 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Page not found - carapace-bin</title>
<base href="/">
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="document-not-found-404"><a class="header" href="#document-not-found-404">Document not found (404)</a></h1>
<p>This URL is invalid, sorry. Please use the navigation bar or search to continue.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

4
FontAwesome/css/font-awesome.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

1
asciinema/asciinema-player.min.js vendored Normal file

File diff suppressed because one or more lines are too long

10
asciinema/load.js Normal file
View File

@ -0,0 +1,10 @@
window.addEventListener("load", function () {
// <img src="./carapace-bin.cast" alt="" />
for (elem of Array.prototype.slice.call(document.getElementsByTagName("img")).reverse())
if (elem.src.endsWith(".cast")) {
const newItem = document.createElement("div");
newItem.id = elem.src;
elem.parentNode.replaceChild(newItem, elem);
AsciinemaPlayer.create(newItem.id, newItem, {cols: 108, rows: 24});
}
})

78
ayu-highlight.css Normal file
View File

@ -0,0 +1,78 @@
/*
Based off of the Ayu theme
Original by Dempfi (https://github.com/dempfi/ayu)
*/
.hljs {
display: block;
overflow-x: auto;
background: #191f26;
color: #e6e1cf;
}
.hljs-comment,
.hljs-quote {
color: #5c6773;
font-style: italic;
}
.hljs-variable,
.hljs-template-variable,
.hljs-attribute,
.hljs-attr,
.hljs-regexp,
.hljs-link,
.hljs-selector-id,
.hljs-selector-class {
color: #ff7733;
}
.hljs-number,
.hljs-meta,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params {
color: #ffee99;
}
.hljs-string,
.hljs-bullet {
color: #b8cc52;
}
.hljs-title,
.hljs-built_in,
.hljs-section {
color: #ffb454;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-symbol {
color: #ff7733;
}
.hljs-name {
color: #36a3d9;
}
.hljs-tag {
color: #00568d;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
.hljs-addition {
color: #91b362;
}
.hljs-deletion {
color: #d96c75;
}

1
badge.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="102" height="20" role="img" aria-label="completers: 638"><title>completers: 638</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="102" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="71" height="20" fill="#555"/><rect x="71" width="31" height="20" fill="#fe7d37"/><rect width="102" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="365" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="610">completers</text><text x="365" y="140" transform="scale(.1)" fill="#fff" textLength="610">completers</text><text aria-hidden="true" x="855" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="210">638</text><text x="855" y="140" transform="scale(.1)" fill="#fff" textLength="210">638</text></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

690
book.js Normal file
View File

@ -0,0 +1,690 @@
"use strict";
// Fix back button cache problem
window.onunload = function () { };
// Global variable, shared between modules
function playground_text(playground, hidden = true) {
let code_block = playground.querySelector("code");
if (window.ace && code_block.classList.contains("editable")) {
let editor = window.ace.edit(code_block);
return editor.getValue();
} else if (hidden) {
return code_block.textContent;
} else {
return code_block.innerText;
}
}
(function codeSnippets() {
function fetch_with_timeout(url, options, timeout = 6000) {
return Promise.race([
fetch(url, options),
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeout))
]);
}
var playgrounds = Array.from(document.querySelectorAll(".playground"));
if (playgrounds.length > 0) {
fetch_with_timeout("https://play.rust-lang.org/meta/crates", {
headers: {
'Content-Type': "application/json",
},
method: 'POST',
mode: 'cors',
})
.then(response => response.json())
.then(response => {
// get list of crates available in the rust playground
let playground_crates = response.crates.map(item => item["id"]);
playgrounds.forEach(block => handle_crate_list_update(block, playground_crates));
});
}
function handle_crate_list_update(playground_block, playground_crates) {
// update the play buttons after receiving the response
update_play_button(playground_block, playground_crates);
// and install on change listener to dynamically update ACE editors
if (window.ace) {
let code_block = playground_block.querySelector("code");
if (code_block.classList.contains("editable")) {
let editor = window.ace.edit(code_block);
editor.addEventListener("change", function (e) {
update_play_button(playground_block, playground_crates);
});
// add Ctrl-Enter command to execute rust code
editor.commands.addCommand({
name: "run",
bindKey: {
win: "Ctrl-Enter",
mac: "Ctrl-Enter"
},
exec: _editor => run_rust_code(playground_block)
});
}
}
}
// updates the visibility of play button based on `no_run` class and
// used crates vs ones available on https://play.rust-lang.org
function update_play_button(pre_block, playground_crates) {
var play_button = pre_block.querySelector(".play-button");
// skip if code is `no_run`
if (pre_block.querySelector('code').classList.contains("no_run")) {
play_button.classList.add("hidden");
return;
}
// get list of `extern crate`'s from snippet
var txt = playground_text(pre_block);
var re = /extern\s+crate\s+([a-zA-Z_0-9]+)\s*;/g;
var snippet_crates = [];
var item;
while (item = re.exec(txt)) {
snippet_crates.push(item[1]);
}
// check if all used crates are available on play.rust-lang.org
var all_available = snippet_crates.every(function (elem) {
return playground_crates.indexOf(elem) > -1;
});
if (all_available) {
play_button.classList.remove("hidden");
} else {
play_button.classList.add("hidden");
}
}
function run_rust_code(code_block) {
var result_block = code_block.querySelector(".result");
if (!result_block) {
result_block = document.createElement('code');
result_block.className = 'result hljs language-bash';
code_block.append(result_block);
}
let text = playground_text(code_block);
let classes = code_block.querySelector('code').classList;
let edition = "2015";
if(classes.contains("edition2018")) {
edition = "2018";
} else if(classes.contains("edition2021")) {
edition = "2021";
}
var params = {
version: "stable",
optimize: "0",
code: text,
edition: edition
};
if (text.indexOf("#![feature") !== -1) {
params.version = "nightly";
}
result_block.innerText = "Running...";
fetch_with_timeout("https://play.rust-lang.org/evaluate.json", {
headers: {
'Content-Type': "application/json",
},
method: 'POST',
mode: 'cors',
body: JSON.stringify(params)
})
.then(response => response.json())
.then(response => {
if (response.result.trim() === '') {
result_block.innerText = "No output";
result_block.classList.add("result-no-output");
} else {
result_block.innerText = response.result;
result_block.classList.remove("result-no-output");
}
})
.catch(error => result_block.innerText = "Playground Communication: " + error.message);
}
// Syntax highlighting Configuration
hljs.configure({
tabReplace: ' ', // 4 spaces
languages: [], // Languages used for auto-detection
});
let code_nodes = Array
.from(document.querySelectorAll('code'))
// Don't highlight `inline code` blocks in headers.
.filter(function (node) {return !node.parentElement.classList.contains("header"); });
if (window.ace) {
// language-rust class needs to be removed for editable
// blocks or highlightjs will capture events
code_nodes
.filter(function (node) {return node.classList.contains("editable"); })
.forEach(function (block) { block.classList.remove('language-rust'); });
code_nodes
.filter(function (node) {return !node.classList.contains("editable"); })
.forEach(function (block) { hljs.highlightBlock(block); });
} else {
code_nodes.forEach(function (block) { hljs.highlightBlock(block); });
}
// Adding the hljs class gives code blocks the color css
// even if highlighting doesn't apply
code_nodes.forEach(function (block) { block.classList.add('hljs'); });
Array.from(document.querySelectorAll("code.hljs")).forEach(function (block) {
var lines = Array.from(block.querySelectorAll('.boring'));
// If no lines were hidden, return
if (!lines.length) { return; }
block.classList.add("hide-boring");
var buttons = document.createElement('div');
buttons.className = 'buttons';
buttons.innerHTML = "<button class=\"fa fa-eye\" title=\"Show hidden lines\" aria-label=\"Show hidden lines\"></button>";
// add expand button
var pre_block = block.parentNode;
pre_block.insertBefore(buttons, pre_block.firstChild);
pre_block.querySelector('.buttons').addEventListener('click', function (e) {
if (e.target.classList.contains('fa-eye')) {
e.target.classList.remove('fa-eye');
e.target.classList.add('fa-eye-slash');
e.target.title = 'Hide lines';
e.target.setAttribute('aria-label', e.target.title);
block.classList.remove('hide-boring');
} else if (e.target.classList.contains('fa-eye-slash')) {
e.target.classList.remove('fa-eye-slash');
e.target.classList.add('fa-eye');
e.target.title = 'Show hidden lines';
e.target.setAttribute('aria-label', e.target.title);
block.classList.add('hide-boring');
}
});
});
if (window.playground_copyable) {
Array.from(document.querySelectorAll('pre code')).forEach(function (block) {
var pre_block = block.parentNode;
if (!pre_block.classList.contains('playground')) {
var buttons = pre_block.querySelector(".buttons");
if (!buttons) {
buttons = document.createElement('div');
buttons.className = 'buttons';
pre_block.insertBefore(buttons, pre_block.firstChild);
}
var clipButton = document.createElement('button');
clipButton.className = 'clip-button';
clipButton.title = 'Copy to clipboard';
clipButton.setAttribute('aria-label', clipButton.title);
clipButton.innerHTML = '<i class=\"tooltiptext\"></i>';
buttons.insertBefore(clipButton, buttons.firstChild);
}
});
}
// Process playground code blocks
Array.from(document.querySelectorAll(".playground")).forEach(function (pre_block) {
// Add play button
var buttons = pre_block.querySelector(".buttons");
if (!buttons) {
buttons = document.createElement('div');
buttons.className = 'buttons';
pre_block.insertBefore(buttons, pre_block.firstChild);
}
var runCodeButton = document.createElement('button');
runCodeButton.className = 'fa fa-play play-button';
runCodeButton.hidden = true;
runCodeButton.title = 'Run this code';
runCodeButton.setAttribute('aria-label', runCodeButton.title);
buttons.insertBefore(runCodeButton, buttons.firstChild);
runCodeButton.addEventListener('click', function (e) {
run_rust_code(pre_block);
});
if (window.playground_copyable) {
var copyCodeClipboardButton = document.createElement('button');
copyCodeClipboardButton.className = 'clip-button';
copyCodeClipboardButton.innerHTML = '<i class="tooltiptext"></i>';
copyCodeClipboardButton.title = 'Copy to clipboard';
copyCodeClipboardButton.setAttribute('aria-label', copyCodeClipboardButton.title);
buttons.insertBefore(copyCodeClipboardButton, buttons.firstChild);
}
let code_block = pre_block.querySelector("code");
if (window.ace && code_block.classList.contains("editable")) {
var undoChangesButton = document.createElement('button');
undoChangesButton.className = 'fa fa-history reset-button';
undoChangesButton.title = 'Undo changes';
undoChangesButton.setAttribute('aria-label', undoChangesButton.title);
buttons.insertBefore(undoChangesButton, buttons.firstChild);
undoChangesButton.addEventListener('click', function () {
let editor = window.ace.edit(code_block);
editor.setValue(editor.originalCode);
editor.clearSelection();
});
}
});
})();
(function themes() {
var html = document.querySelector('html');
var themeToggleButton = document.getElementById('theme-toggle');
var themePopup = document.getElementById('theme-list');
var themeColorMetaTag = document.querySelector('meta[name="theme-color"]');
var themeIds = [];
themePopup.querySelectorAll('button.theme').forEach(function (el) {
themeIds.push(el.id);
});
var stylesheets = {
ayuHighlight: document.querySelector("[href$='ayu-highlight.css']"),
tomorrowNight: document.querySelector("[href$='tomorrow-night.css']"),
highlight: document.querySelector("[href$='highlight.css']"),
};
function showThemes() {
themePopup.style.display = 'block';
themeToggleButton.setAttribute('aria-expanded', true);
themePopup.querySelector("button#" + get_theme()).focus();
}
function updateThemeSelected() {
themePopup.querySelectorAll('.theme-selected').forEach(function (el) {
el.classList.remove('theme-selected');
});
themePopup.querySelector("button#" + get_theme()).classList.add('theme-selected');
}
function hideThemes() {
themePopup.style.display = 'none';
themeToggleButton.setAttribute('aria-expanded', false);
themeToggleButton.focus();
}
function get_theme() {
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch (e) { }
if (theme === null || theme === undefined || !themeIds.includes(theme)) {
return default_theme;
} else {
return theme;
}
}
function set_theme(theme, store = true) {
let ace_theme;
if (theme == 'coal' || theme == 'navy') {
stylesheets.ayuHighlight.disabled = true;
stylesheets.tomorrowNight.disabled = false;
stylesheets.highlight.disabled = true;
ace_theme = "ace/theme/tomorrow_night";
} else if (theme == 'ayu') {
stylesheets.ayuHighlight.disabled = false;
stylesheets.tomorrowNight.disabled = true;
stylesheets.highlight.disabled = true;
ace_theme = "ace/theme/tomorrow_night";
} else {
stylesheets.ayuHighlight.disabled = true;
stylesheets.tomorrowNight.disabled = true;
stylesheets.highlight.disabled = false;
ace_theme = "ace/theme/dawn";
}
setTimeout(function () {
themeColorMetaTag.content = getComputedStyle(document.documentElement).backgroundColor;
}, 1);
if (window.ace && window.editors) {
window.editors.forEach(function (editor) {
editor.setTheme(ace_theme);
});
}
var previousTheme = get_theme();
if (store) {
try { localStorage.setItem('mdbook-theme', theme); } catch (e) { }
}
html.classList.remove(previousTheme);
html.classList.add(theme);
updateThemeSelected();
}
// Set theme
var theme = get_theme();
set_theme(theme, false);
themeToggleButton.addEventListener('click', function () {
if (themePopup.style.display === 'block') {
hideThemes();
} else {
showThemes();
}
});
themePopup.addEventListener('click', function (e) {
var theme;
if (e.target.className === "theme") {
theme = e.target.id;
} else if (e.target.parentElement.className === "theme") {
theme = e.target.parentElement.id;
} else {
return;
}
set_theme(theme);
});
themePopup.addEventListener('focusout', function(e) {
// e.relatedTarget is null in Safari and Firefox on macOS (see workaround below)
if (!!e.relatedTarget && !themeToggleButton.contains(e.relatedTarget) && !themePopup.contains(e.relatedTarget)) {
hideThemes();
}
});
// Should not be needed, but it works around an issue on macOS & iOS: https://github.com/rust-lang/mdBook/issues/628
document.addEventListener('click', function(e) {
if (themePopup.style.display === 'block' && !themeToggleButton.contains(e.target) && !themePopup.contains(e.target)) {
hideThemes();
}
});
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; }
if (!themePopup.contains(e.target)) { return; }
switch (e.key) {
case 'Escape':
e.preventDefault();
hideThemes();
break;
case 'ArrowUp':
e.preventDefault();
var li = document.activeElement.parentElement;
if (li && li.previousElementSibling) {
li.previousElementSibling.querySelector('button').focus();
}
break;
case 'ArrowDown':
e.preventDefault();
var li = document.activeElement.parentElement;
if (li && li.nextElementSibling) {
li.nextElementSibling.querySelector('button').focus();
}
break;
case 'Home':
e.preventDefault();
themePopup.querySelector('li:first-child button').focus();
break;
case 'End':
e.preventDefault();
themePopup.querySelector('li:last-child button').focus();
break;
}
});
})();
(function sidebar() {
var body = document.querySelector("body");
var sidebar = document.getElementById("sidebar");
var sidebarLinks = document.querySelectorAll('#sidebar a');
var sidebarToggleButton = document.getElementById("sidebar-toggle");
var sidebarResizeHandle = document.getElementById("sidebar-resize-handle");
var firstContact = null;
function showSidebar() {
body.classList.remove('sidebar-hidden')
body.classList.add('sidebar-visible');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', 0);
});
sidebarToggleButton.setAttribute('aria-expanded', true);
sidebar.setAttribute('aria-hidden', false);
try { localStorage.setItem('mdbook-sidebar', 'visible'); } catch (e) { }
}
function hideSidebar() {
body.classList.remove('sidebar-visible')
body.classList.add('sidebar-hidden');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', -1);
});
sidebarToggleButton.setAttribute('aria-expanded', false);
sidebar.setAttribute('aria-hidden', true);
try { localStorage.setItem('mdbook-sidebar', 'hidden'); } catch (e) { }
}
// Toggle sidebar
sidebarToggleButton.addEventListener('click', function sidebarToggle() {
if (body.classList.contains("sidebar-hidden")) {
var current_width = parseInt(
document.documentElement.style.getPropertyValue('--sidebar-width'), 10);
if (current_width < 150) {
document.documentElement.style.setProperty('--sidebar-width', '150px');
}
showSidebar();
} else if (body.classList.contains("sidebar-visible")) {
hideSidebar();
} else {
if (getComputedStyle(sidebar)['transform'] === 'none') {
hideSidebar();
} else {
showSidebar();
}
}
});
sidebarResizeHandle.addEventListener('mousedown', initResize, false);
function initResize(e) {
window.addEventListener('mousemove', resize, false);
window.addEventListener('mouseup', stopResize, false);
body.classList.add('sidebar-resizing');
}
function resize(e) {
var pos = (e.clientX - sidebar.offsetLeft);
if (pos < 20) {
hideSidebar();
} else {
if (body.classList.contains("sidebar-hidden")) {
showSidebar();
}
pos = Math.min(pos, window.innerWidth - 100);
document.documentElement.style.setProperty('--sidebar-width', pos + 'px');
}
}
//on mouseup remove windows functions mousemove & mouseup
function stopResize(e) {
body.classList.remove('sidebar-resizing');
window.removeEventListener('mousemove', resize, false);
window.removeEventListener('mouseup', stopResize, false);
}
document.addEventListener('touchstart', function (e) {
firstContact = {
x: e.touches[0].clientX,
time: Date.now()
};
}, { passive: true });
document.addEventListener('touchmove', function (e) {
if (!firstContact)
return;
var curX = e.touches[0].clientX;
var xDiff = curX - firstContact.x,
tDiff = Date.now() - firstContact.time;
if (tDiff < 250 && Math.abs(xDiff) >= 150) {
if (xDiff >= 0 && firstContact.x < Math.min(document.body.clientWidth * 0.25, 300))
showSidebar();
else if (xDiff < 0 && curX < 300)
hideSidebar();
firstContact = null;
}
}, { passive: true });
})();
(function chapterNavigation() {
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; }
if (window.search && window.search.hasFocus()) { return; }
var html = document.querySelector('html');
function next() {
var nextButton = document.querySelector('.nav-chapters.next');
if (nextButton) {
window.location.href = nextButton.href;
}
}
function prev() {
var previousButton = document.querySelector('.nav-chapters.previous');
if (previousButton) {
window.location.href = previousButton.href;
}
}
switch (e.key) {
case 'ArrowRight':
e.preventDefault();
if (html.dir == 'rtl') {
prev();
} else {
next();
}
break;
case 'ArrowLeft':
e.preventDefault();
if (html.dir == 'rtl') {
next();
} else {
prev();
}
break;
}
});
})();
(function clipboard() {
var clipButtons = document.querySelectorAll('.clip-button');
function hideTooltip(elem) {
elem.firstChild.innerText = "";
elem.className = 'clip-button';
}
function showTooltip(elem, msg) {
elem.firstChild.innerText = msg;
elem.className = 'clip-button tooltipped';
}
var clipboardSnippets = new ClipboardJS('.clip-button', {
text: function (trigger) {
hideTooltip(trigger);
let playground = trigger.closest("pre");
return playground_text(playground, false);
}
});
Array.from(clipButtons).forEach(function (clipButton) {
clipButton.addEventListener('mouseout', function (e) {
hideTooltip(e.currentTarget);
});
});
clipboardSnippets.on('success', function (e) {
e.clearSelection();
showTooltip(e.trigger, "Copied!");
});
clipboardSnippets.on('error', function (e) {
showTooltip(e.trigger, "Clipboard error!");
});
})();
(function scrollToTop () {
var menuTitle = document.querySelector('.menu-title');
menuTitle.addEventListener('click', function () {
document.scrollingElement.scrollTo({ top: 0, behavior: 'smooth' });
});
})();
(function controllMenu() {
var menu = document.getElementById('menu-bar');
(function controllPosition() {
var scrollTop = document.scrollingElement.scrollTop;
var prevScrollTop = scrollTop;
var minMenuY = -menu.clientHeight - 50;
// When the script loads, the page can be at any scroll (e.g. if you reforesh it).
menu.style.top = scrollTop + 'px';
// Same as parseInt(menu.style.top.slice(0, -2), but faster
var topCache = menu.style.top.slice(0, -2);
menu.classList.remove('sticky');
var stickyCache = false; // Same as menu.classList.contains('sticky'), but faster
document.addEventListener('scroll', function () {
scrollTop = Math.max(document.scrollingElement.scrollTop, 0);
// `null` means that it doesn't need to be updated
var nextSticky = null;
var nextTop = null;
var scrollDown = scrollTop > prevScrollTop;
var menuPosAbsoluteY = topCache - scrollTop;
if (scrollDown) {
nextSticky = false;
if (menuPosAbsoluteY > 0) {
nextTop = prevScrollTop;
}
} else {
if (menuPosAbsoluteY > 0) {
nextSticky = true;
} else if (menuPosAbsoluteY < minMenuY) {
nextTop = prevScrollTop + minMenuY;
}
}
if (nextSticky === true && stickyCache === false) {
menu.classList.add('sticky');
stickyCache = true;
} else if (nextSticky === false && stickyCache === true) {
menu.classList.remove('sticky');
stickyCache = false;
}
if (nextTop !== null) {
menu.style.top = nextTop + 'px';
topCache = nextTop;
}
prevScrollTop = scrollTop;
}, { passive: true });
})();
(function controllBorder() {
function updateBorder() {
if (menu.offsetTop === 0) {
menu.classList.remove('bordered');
} else {
menu.classList.add('bordered');
}
}
updateBorder();
document.addEventListener('scroll', updateBorder, { passive: true });
})();
})();

134
bridges.cast Normal file
View File

@ -0,0 +1,134 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1706528422, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.109264, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[0.110416, "o", "\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.128498, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.128638, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36m~\u001b[0;m \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.674566, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mg\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.676583, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.676954, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.677266, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.692621, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.692942, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.785404, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mgh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[0.935239, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[1.353353, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;4malias \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7malias\u001b[0;2;7m (Create command shortcuts) \u001b[0;m \u001b[0;34missue\u001b[0;2m (Manage issues) \r\n\u001b[0;mapi\u001b[0;2m (Make an authenticated GitHub API request) \u001b[0;m label\u001b[0;2m (Manage labels) \r\n\u001b[0;34mauth\u001b[0;2m (Authenticate gh and git with GitHub) \u001b[0;m \u001b[0;36mnushell\u001b[0;2m (issue list --repo nushell/nush\r\n\u001b[0;34mbrowse\u001b[0;2m (Open the repository in the browser) \u001b[0;m \u001b[0;34morg\u001b[0;2m (Manage organizations) \r\n\u001b[0;36mbug\u001b[0;2m (issue list --label bug) \u001b[0;m \u001b[0;34mpr\u001b[0;2m (Manage pull requests) \r\n\u001b[0;33mcache\u001b[0;2m (Manage Github Actions caches) \u001b[0;m \u001b[0;34mproject\u001b[0;2m (Work with GitHub Projects.) \r\n\u001b[0;36mcarapace\u001b[0;2m (search issues rsteube/carapace --sort updated) \u001b[0;m \u001b[0;34mrelease\u001b[0;2m (Manage releases) \r\n\u001b[0;36mcobra\u001b[0;2m (issue list --repo spf13/cobra --label area/shell-completion)\u001b[0;m \u001b[0;34mrepo\u001b[0;2m (Manage repositories) \r\n\u001b[0;34mcodespace\u001b[0;2m (Connect to and manage codespaces) \u001b[0;m \u001b[0;35mrepo-collab\u001b[0;2m (manage repository collabor\r\n\u001b[0;mcompletion\u001b[0;2m (Generate shell completion scripts) \u001b[0;m rs\u001b[0;2m (View info about repo rulesets) \r\n\u001b[0;mconfig\u001b[0;2m (Manage configuration for gh) \u001b[0;m ruleset\u001b[0;2m (View info about repo rulesets)\r\n\u001b[0;34mcs\u001b[0;2m (Connect to and manage codespaces) \u001b[0;m \u001b[0;33mrun\u001b[0;2m (View details about workflow runs) \r\n\u001b[0;35mdash\u001b[0;2m (A beautiful CLI dashboard for GitHub) \u001b[0;m search\u001b[0;2m (Search for repositories, issues\r\n\u001b[0;mext\u001b[0;2m (Manage gh extensions) \u001b[0;m secret\u001b[0;2m (Manage GitHub secrets) \r\n\u001b[0;mextension\u001b[0;2m (Manage gh extensions) \u001b[0;m \u001b[0;36mshortlog\u001b[0;2m (!gh release list --limit 1 | \r\n\u001b[0;mextensions\u001b[0;2m (Manage gh extensions) \u001b[0;m ssh-key\u001b[0;2m (Manage SSH keys) \r\n\u001b[0;35mfeed\u001b[0;2m (extension) \u001b[0;m status\u001b[0;2m (Print information about relevan\r\n\u001b[0;34mgist\u001b[0;2m (Manage gists) \u001b[0;m variable\u001b[0;2m (Manage GitHub Actions variabl\r\n\u001b[0;mgpg-key\u001b[0;2m (Manage GPG keys) \u001b[0;m \u001b[0;33mworkflow\u001b[0;2m (View details about GitHub Act\r\n\u001b[0;mhelp\u001b[0;2m (Help about any command) \r\n\u001b[0;7;35m \u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[2.653659, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[6C\u001b[K\r\n\u001b[J\u001b[A\r\u001b[6C\u001b[?25h"]
[2.654255, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.683397, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.683835, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.944806, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mt\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.149116, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ms\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[4.319217, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mtsh\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[4.43936, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C \r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[4.715829, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;4mapp \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mapp\u001b[0;2;7m (View and control proxied applications.) \u001b[0;m mfa\u001b[0;2m (Manage multi-factor authentication\r\n\u001b[0;mapps\u001b[0;2m (View and control proxied applications.) \u001b[0;m play\u001b[0;2m (Replay the recorded session (SSH,\r\n\u001b[0;maws\u001b[0;2m (Access AWS API.) \u001b[0;m proxy\u001b[0;2m (Run local TLS proxy allowing con\r\n\u001b[0;maz\u001b[0;2m (Access Azure API.) \u001b[0;m recording\u001b[0;2m (View and control session rec\r\n\u001b[0;mclusters\u001b[0;2m (List available Teleport clusters.) \u001b[0;m recordings\u001b[0;2m (View and control session re\r\n\u001b[0;mconfig\u001b[0;2m (Print OpenSSH configuration details.) \u001b[0;m request\u001b[0;2m (Manage access requests.) \r\n\u001b[0;mdb\u001b[0;2m (View and control proxied databases.) \u001b[0;m requests\u001b[0;2m (Manage access requests.) \r\n\u001b[0;mdevice\u001b[0;2m (Manage this device. Requires Teleport Enterprise.) \u001b[0;m scp\u001b[0;2m (Transfer files to a remote SSH nod\r\n\u001b[0;menv\u001b[0;2m (Print commands to set Teleport session environment variables.)\u001b[0;m ssh\u001b[0;2m (Run shell or execute a command on \r\n\u001b[0;mgcloud\u001b[0;2m (Access GCP API with the gcloud command.) \u001b[0;m status\u001b[0;2m (Display the list of proxy serve\r\n\u001b[0;mgcp\u001b[0;2m (Access GCP API with the gcloud command.) \u001b[0;m version\u001b[0;2m (Print the tsh client and Proxy\r\n\u001b[0;mgsutil\u001b[0;2m (Access Google Cloud Storage with the gsutil command.) \r\n\u001b[0;mheadless\u001b[0;2m (Headless authentication commands.) \r\n\u001b[0;mhelp\u001b[0;2m (Show help.) \r\n\u001b[0;mjoin\u001b[0;2m (Join the active SSH or Kubernetes session.) \r\n\u001b[0;mkube\u001b[0;2m (Manage available Kubernetes clusters) \r\n\u001b[0;mkubectl\u001b[0;2m (Runs a kubectl command on a Kubernetes cluster.) \r\n\u001b[0;mlogin\u001b[0;2m (Log in to a cluster and retrieve the session certificate.) \r\n\u001b[0;mlogout\u001b[0;2m (Delete a cluster certificate.) \r\n\u001b[0;mls\u001b[0;2m (List remote SSH nodes.) \r\n\u001b[0;7;35m \u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[7.196572, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[6C\u001b[K\r\n\u001b[J\u001b[A\r\u001b[6C\u001b[?25h"]
[7.197169, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.223009, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[8.117962, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mh\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[8.194696, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mhx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[8.351888, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[8.628222, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C~\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[8.886885, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C/\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[8.917085, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C.\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[9.230754, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[9.335944, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Co\r\u001b[14C\u001b[?25h"]
[9.33661, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[9.413225, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cn\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[10.223922, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[K\u001b[0;4m/home/rsteube/.config/\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;189;147;249m.config/\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[10.871487, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[9C\u001b[K/home/rsteube/.config/\r\n\u001b[J\u001b[A\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[31C\u001b[?25h"]
[11.125104, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[31Cc\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[32C\u001b[?25h"]
[11.192695, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[32Ca\r\u001b[33C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[33C\u001b[?25h"]
[11.336102, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[33Cr\r\u001b[34C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[34C\u001b[?25h"]
[11.47777, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[34Ca\r\u001b[35C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[35C\u001b[?25h"]
[11.899005, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[35Cpace/\r\u001b[40C\u001b[?25h"]
[13.158344, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[40Cb\r\u001b[41C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[41C\u001b[?25h"]
[13.330531, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[41Cr\r\u001b[42C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[42C\u001b[?25h"]
[13.433446, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[42Ci\r\u001b[43C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[43C\u001b[?25h"]
[13.521587, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[43Cd\r\u001b[44C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[44C\u001b[?25h"]
[13.678885, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[44Cg\r\u001b[45C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[45C\u001b[?25h"]
[13.733564, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[45Ce\r\u001b[46C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[46C\u001b[?25h"]
[13.859096, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[46Cs\r\u001b[47C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[47C\u001b[?25h"]
[14.052283, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[47C.\r\u001b[48C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[48C\u001b[?25h"]
[14.306051, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[48Cy\r\u001b[49C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[49C\u001b[?25h"]
[14.418008, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[49Ca\r\u001b[50C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[50C\u001b[?25h"]
[14.53458, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[50Cm\r\u001b[51C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[51C\u001b[?25h"]
[14.585913, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[51Cl\r\u001b[52C\u001b[?25h"]
[14.925395, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[15.124123, "o", "\u001b[?1049h\u001b[?2004h\u001b[?1004h\u001b[2J\u001b[?u\u001b[c"]
[15.125119, "o", "\u001b[1;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;180;190;254m 1\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;180;190;254m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;1H \u001b[38;2;69;71;90m ~\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[3;1H \u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[15.125248, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H\u001b[38;2;186;194;222m\u001b[48;2;24;24;37m NOR .config/carapace/bridges.yaml 1 sel 1:1 \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mLoaded 1 file. \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;8H\u001b[?25l"]
[15.403992, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;8H\u001b[?25l"]
[15.555842, "o", "\u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;49;50;68m┌Space─────────────────────────────────────────────┐\u001b[2;57H│ f Open file picker │\u001b[3;57H│ F Open file picker at current working directory │\u001b[4;57H│ b Open buffer picker │\u001b[5;57H│ j Open jumplist picker │\u001b[6;57H│ s Open symbol picker │\u001b[7;57H│ S Open workspace symbol picker │\u001b[8;57H│ d Open diagnostic picker │\u001b[9;57H│ D Open workspace diagnostic picker │\u001b[10;57H│ a Perform code action │\u001b[11;57H│ ' Open last picker │\u001b[12;57H│ g Debug (experimental) │\u001b[13;57H│ w Window │\u001b[14;57H│ y :clipboard-yank-join [] │\u001b[15;57H│ Y Yank main selection to clipboard │\u001b[16;57H│ p Paste clipboard after selections │\u001b[17;57H│ P Paste clipboard before selections │\u001b[18;57H│ R Replace selections by clipboard content │\u001b[19;57H│ / Global search in workspace folder │\u001b[20;57H│ k Show docs for item under cursor │\u001b[21;57H│ r Rename symbol │\u001b[22;57H│ h Select symbol references │\u001b[23;57H│ ? Open command palette │\u001b[24;1H\u001b[48;2;30;30;46m \u001b[24;8H \u001b[24;10H \u001b[24;57H\u001b[48;2;49;50;68m└────────────────────────────────────<space>───────┘\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;8H\u001b[?25l"]
[15.616678, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;8H\u001b[?25l"]
[15.878413, "o", "\u001b[1;3H\u001b[38;2;69;71;90m\u001b[48;2;30;30;46m 2\u001b[1;8H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mgh\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcobra\u001b[38;2;108;112;134m \u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;5H\u001b[38;2;69;71;90m1\u001b[2;8H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mopentofu\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcomplete\u001b[38;2;108;112;134m \u001b[2;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[3;3H\u001b[38;2;180;190;254m 3\u001b[3;8H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mtsh\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mkingpi\u001b[38;2;30;30;46m\u001b[48;2;180;190;254mn\u001b[38;2;108;112;134m\u001b[48;2;30;30;46m \u001b[3;57H\u001b[38;2;205;214;244m \u001b[4;3H\u001b[38;2;69;71;90m ~\u001b[4;8H\u001b[38;2;108;112;134m \u001b[4;57H\u001b[38;2;205;214;244m \u001b[5;57H \u001b[6;57H \u001b[7;57H \u001b[8;57H \u001b[9;57H \u001b[10;57H \u001b[11;57H \u001b[12;57H \u001b[13;57H \u001b[14;57H \u001b[15;57H \u001b[16;57H \u001b[17;57H \u001b[18;57H \u001b[19;57H \u001b[20;57H \u001b[21;57H \u001b[22;57H \u001b[23;38H\u001b[38;2;186;194;222m\u001b[48;2;24;24;37m[+]\u001b[23;57H 1 sel 3:12 \u001b[24;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[16.117978, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[16.879874, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[17.580333, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[17.666127, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[18.151984, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[18.763768, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[19.055092, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[19.362674, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[3;19H\u001b[?25l"]
[19.70655, "o", "\u001b[14;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mquit buffer-previous later \u001b[15;1Hquit! write write-quit \u001b[16;1Hopen write! write-quit! \u001b[17;1Hbuffer-close write-buffer-close write-all \u001b[18;1Hbuffer-close! write-buffer-close! write-all! \u001b[19;1Hbuffer-close-others new write-quit-all \u001b[20;1Hbuffer-close-others! format write-quit-all! \u001b[21;1Hbuffer-close-all indent-style quit-all \u001b[22;1Hbuffer-close-all! line-ending quit-all! \u001b[23;1Hbuffer-next earlier cquit \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m:\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;2H\u001b[?25h\u001b[2 q"]
[20.315858, "o", "\u001b[13;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌────────────────────────────────────────────────────────────────────────────────────────┐\u001b[14;1H│ Write\u001b[14;9Hchanges\u001b[14;17Hto\u001b[14;20Hdisk.\u001b[14;26HAccepts\u001b[14;34Han\u001b[14;37Hoptional path (:write\u001b[14;59Hsome/path.txt) \u001b[14;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[15;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases:\u001b[15;12Hw\u001b[15;37H \u001b[15;73H \u001b[15;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mwrit\u001b[17;6H \u001b[17;43Hall! \u001b[17;73Hshow-directory\u001b[18;1Hwrit\u001b[18;6H! \u001b[18;43Hq\u001b[18;45Hit-all \u001b[18;73Hvsplit-new\u001b[19;1Hwrit\u001b[19;6H-buffer\u001b[19;14Hclose \u001b[19;37Hwrite-quit-all!\u001b[19;73Hhsplit-new \u001b[20;1Hwrit\u001b[20;6H-buffer\u001b[20;14Hclose! \u001b[20;37Hlsp-workspace-command\u001b[20;73Hreflow \u001b[21;1Hwrit\u001b[21;6H-quit \u001b[21;37Hconfig\u001b[21;44Hopen-workspace\u001b[21;73Hredraw \u001b[22;1Hwrit\u001b[22;6H-quit! \u001b[22;37Hnew \u001b[22;73H \u001b[23;1Hwrit\u001b[23;6H-all \u001b[23;37Hshow-clipboard-provider\u001b[23;73H \u001b[24;2H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mw\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;3H\u001b[?25h\u001b[2 q"]
[20.379898, "o", "\u001b[13;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌────────────────────────────────────────────────────────────────────────────────────────┐\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[18;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Write\u001b[18;9Hchanges\u001b[18;17Hto\u001b[18;20Hdisk\u001b[18;25Hand\u001b[18;29Hclose\u001b[18;35Hthe current view.\u001b[18;53HAccepts\u001b[18;61Han\u001b[18;64Hoptional\u001b[18;73Hpath (:wq \u001b[18;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[19;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ some/path.txt) \u001b[19;37H \u001b[19;73H \u001b[19;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[20;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases: wq, x \u001b[20;37H \u001b[20;73H \u001b[20;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[21;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[22;11H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m \u001b[22;37Hwrite-quit-all\u001b[23;7Hquit!\u001b[23;37Hwrite-quit-\u001b[23;49Hll! \u001b[24;3H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mq\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;4H\u001b[?25h\u001b[2 q"]
[20.577702, "o", "\u001b[?25h\u001b[2 q\u001b[0 q\u001b[?2004l\u001b[?1004l\u001b[?1049l"]
[20.586303, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[20.586644, "o", "\u001b[?25l\r\u001b[0;1;36m~\u001b[0;m \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[20.586935, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[20.617406, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[20.617562, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[22.271293, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31ms\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[22.357192, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31me\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[22.449317, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mset\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[22.550637, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mset-\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[22.662328, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31me\u001b[0;m\r\u001b[11C\u001b[?25h"]
[22.662485, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[22.753883, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31mn\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[22.894038, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mset-env\u001b[0;m\r\u001b[13C\u001b[?25h"]
[23.066061, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13C \r\u001b[14C\u001b[?25h"]
[23.067923, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[23.06811, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[23.35856, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C\u001b[0;4mAR \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mAR\u001b[0;2;7m (The command to use to manipulate library archives when building with the gccg...)\u001b[0;m DOCKER_ \r\n\u001b[0;34mASCIINEMA_REC\u001b[0;2m (1) \u001b[0;m \u001b[0;34mDOCKER_HIDE_LEGACY_CO\r\n\u001b[0;mAWS_ \u001b[0;34mEDITOR\u001b[0;2m (/usr/bin/heli\r\n\u001b[0;mBROWSER\u001b[0;2m (the browser to use) \u001b[0;m FC\u001b[0;2m (The command to us\r\n\u001b[0;mBUILDKIT_ GCCGO\u001b[0;2m (The gccgo comm\r\n\u001b[0;mCARAPACE_ GCCGOTOOLDIR\u001b[0;2m (If set,\r\n\u001b[0;34mCARAPACE_BRIDGES\u001b[0;2m (zsh,fish,bash,inshellisense) \u001b[0;m GH_ \r\n\u001b[0;34mCARAPACE_MATCH\u001b[0;2m (1) \u001b[0;m GIT_ \r\nCARGO_ GO111MODULE\u001b[0;2m (Controls\r\n\u001b[0;mCC\u001b[0;2m (The command to use to compile C code) \u001b[0;m GO386\u001b[0;2m (For GOARCH=386\r\n\u001b[0;mCGO_ GOAMD64\u001b[0;2m (For GOARCH=a\r\n\u001b[0;34mCLOUDSDK_PYTHON\u001b[0;2m (/usr/bin/python) \u001b[0;m GOARCH\u001b[0;2m (The architect\r\n\u001b[0;34mCLOUDSDK_PYTHON_ARGS\u001b[0;2m (-S) \u001b[0;m GOARM\u001b[0;2m (For GOARCH=arm\r\n\u001b[0;34mCLOUDSDK_ROOT_DIR\u001b[0;2m (/opt/google-cloud-cli) \u001b[0;m GOBIN\u001b[0;2m (The directory \r\n\u001b[0;34mCOLORTERM\u001b[0;2m (truecolor) \u001b[0;m GOCACHE\u001b[0;2m (The director\r\n\u001b[0;mCUSTOM_ GOCOVERDIR\u001b[0;2m (Directory\r\n\u001b[0;mCXX\u001b[0;2m (The command to use to compile C++ code) \u001b[0;m GODEBUG\u001b[0;2m (Enable vario\r\n\u001b[0;34mDBUS_SESSION_BUS_ADDRESS\u001b[0;2m (unix:path=/run/user/1000/bus) \u001b[0;m GOENV\u001b[0;2m (The location o\r\n\u001b[0;34mDEBUGINFOD_URLS\u001b[0;2m (https://debuginfod.archlinux.org) \u001b[0;m GOEXE\u001b[0;2m (The executable\r\n\u001b[0;34mDISPLAY\u001b[0;2m (:0) \u001b[0;m GOEXPERIMENT\u001b[0;2m (Comma-s\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[23.946032, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22Cc\r\n\u001b[87C\u001b[KGO111MODULE\u001b[0;2m (Controls\r\n\u001b[87C\u001b[0;m\u001b[KGO386\u001b[0;2m (For GOARCH=386\r\n\u001b[0;m\u001b[KCARAPACE_ GOAMD64\u001b[0;2m (For GOARCH=a\r\n\u001b[0;m\u001b[K\u001b[0;34mCARAPACE_BRIDGES\u001b[0;2m (zsh,fish,bash,inshellisense) \u001b[0;m GOARCH\u001b[0;2m (The architect\r\n\u001b[0;m\u001b[K\u001b[0;34mCARAPACE_MATCH\u001b[0;2m (1) \u001b[0;m GOARM\u001b[0;2m (For GOARCH=arm\r\n\u001b[3C\u001b[0;m\u001b[KGO_ GOBIN\u001b[0;2m (The directory \r\n\u001b[0;m\u001b[KCC\u001b[0;2m (The command to use to compile C code) \u001b[0;m GOCACHE\u001b[0;2m (The director\r\n\u001b[0;m\u001b[KCGO_ GOCOVERDIR\u001b[0;2m (Directory\r\n\u001b[0;m\u001b[K\u001b[0;34mCLOUDSDK_PYTHON\u001b[0;2m (/usr/bin/python) \u001b[0;m GODEBUG\u001b[0;2m (Enable vario\r\n\u001b[0;m\u001b[K\u001b[0;34mCLOUDSDK_PYTHON_ARGS\u001b[0;2m (-S) \u001b[0;m GOENV\u001b[0;2m (The location o\r\n\u001b[0;m\u001b[K\u001b[0;34mCLOUDSDK_ROOT_DIR\u001b[0;2m (/opt/google-cloud-cli) \u001b[0;m GOEXE\u001b[0;2m (The executable\r\n\u001b[1C\u001b[0;m\u001b[K\u001b[0;34mOLORTERM\u001b[0;2m (truecolor) \u001b[0;m GOEXPERIMENT\u001b[0;2m (Comma-s\r\n\u001b[0;m\u001b[KCUSTOM_ GOFLAGS\u001b[0;2m (A space-sepa\r\n\u001b[0;m\u001b[KCXX\u001b[0;2m (The command to use to compile C++ code) \u001b[0;m GOGCCFLAGS\u001b[0;2m (A space-s\r\n\u001b[0;m\u001b[K\u001b[0;34mDEBUGINFOD_URLS\u001b[0;2m (https://debuginfod.archlinux.org) \u001b[0;m GOHOSTARCH\u001b[0;2m (The archi\r\n\u001b[0;m\u001b[KDOCKER_ GOHOSTOS\u001b[0;2m (The operati\r\n\u001b[0;m\u001b[K\u001b[0;34mDOCKER_HIDE_LEGACY_COMMANDS\u001b[0;2m (1) \u001b[0;m GOINSECURE\u001b[0;2m (Comma-sep\r\n\u001b[0;m\u001b[KFC\u001b[0;2m (The command to use to compile Fortran code) \u001b[0;m GOMIPS\u001b[0;2m (For GOARCH=mi\r\n\u001b[0;m\u001b[KGCCGO\u001b[0;2m (The gccgo command to run for 'go build -compiler=gccgo') \u001b[0;m GOMIPS64\u001b[0;2m (For GOARCH=\r\n\u001b[0;m\u001b[KGCCGOTOOLDIR\u001b[0;2m (If set, where to find gccgo tools, such as cgo) \u001b[0;m GOMODCACHE\u001b[0;2m (The direc\r\n\u001b[25C\u001b[0;m\u001b[K\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[23C\u001b[?25h"]
[23.981111, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[14C\u001b[K\u001b[0;4mCARAPACE_\r\n\u001b[23C\u001b[0;ma\r\n\u001b[K\u001b[0;7mCARAPACE_ \r\n\u001b[0;m\u001b[K\u001b[0;34mCARAPACE_BRIDGES\u001b[0;2m (zsh,fish,bash,inshellisense) \r\n\u001b[0;m\u001b[K\u001b[0;34mCARAPACE_MATCH\u001b[0;2m (1) \r\n\u001b[0;m\u001b[KCARGO_ \r\n\u001b[KGOCACHE\u001b[0;2m (The directory where the go command will store cached information for reuse in...) \r\n\u001b[0;m\u001b[KGOENV\u001b[0;2m (The location of the Go environment configuration file) \r\n\u001b[0;m\u001b[KGOMODCACHE\u001b[0;2m (The directory where the go command will store downloaded modules) \r\n\u001b[0;m\u001b[K\u001b[0;34mINVOCATION_ID\u001b[0;2m (67ed7943c2c9400fb03d2048e6628aa4) \r\n\u001b[0;m\u001b[K\u001b[0;34mLC_IDENTIFICATION\u001b[0;2m (de_DE.UTF-8) \r\n\u001b[0;m\u001b[K\u001b[0;34mLS_COLORS\u001b[0;2m (*~=0;38;2;58;60;78:bd=1;38;2;241;250;140;48;2;40;42;54:ca=0:cd=1;38;2;241;250...) \r\n\u001b[0;m\u001b[K\u001b[0;34mNIX_SSL_CERT_FILE\u001b[0;2m (/etc/ssl/certs/ca-certificates.crt) \r\n\u001b[0;m\u001b[KPYTHONBREAKPOINT\u001b[0;2m (set debugger callable) \r\n\u001b[0;m\u001b[KPYTHONFAULTHANDLER\u001b[0;2m (call faulthandler.enable() at startup) \r\n\u001b[0;m\u001b[KPYTHONHOME\u001b[0;2m (Change the location of the standard Python libraries) \r\n\u001b[0;m\u001b[KPYTHONMALLOC\u001b[0;2m (Set the Python memory allocators and/or install debug hooks) \r\n\u001b[0;m\u001b[KPYTHONMALLOCSTATS\u001b[0;2m (Python will print statistics of the pymalloc memory allocator) \r\n\u001b[0;m\u001b[KPYTHONTRACEMALLOC\u001b[0;2m (start tracing Python memory allocations using the tracemalloc module) \r\n\u001b[0;m\u001b[K\u001b[0;34mXDG_DATA_DIRS\u001b[0;2m (/home/rsteube/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/sha...)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[18A\r\u001b[24C\u001b[?25h"]
[24.239701, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[24Cr\r\n\u001b[46C\u001b[K \u001b[0;34mCARAPACE_MATCH\u001b[0;2m (1)\r\n\u001b[46C\u001b[0;m\u001b[K CARGO_ \r\n\u001b[J\u001b[A\u001b[2A\r\u001b[25C\u001b[?25h"]
[24.6376, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[14C\u001b[KCARAPACE_\r\n\u001b[J\u001b[A\r\u001b[23C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[24.898958, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C\u001b[K\u001b[0;4mCARAPACE_BRIDGES \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34mCARAPACE_BRIDGES\u001b[0;2;7m (zsh,fish,bash,inshellisense) \r\n\u001b[0;mCARAPACE_COVERDIR\u001b[0;2m (coverage directory for sandbox tests)\r\n\u001b[0;mCARAPACE_ENV\u001b[0;2m (register get-env, set-env and unset-env) \r\n\u001b[0;mCARAPACE_EXCLUDES\u001b[0;2m (internal completers to exclude) \r\n\u001b[0;mCARAPACE_HIDDEN\u001b[0;2m (show hidden commands/flags) \r\n\u001b[0;mCARAPACE_LENIENT\u001b[0;2m (allow unknown flags) \r\n\u001b[0;mCARAPACE_LOG\u001b[0;2m (enable logging) \r\n\u001b[0;34mCARAPACE_MATCH\u001b[0;2m (1) \r\n\u001b[0;mCARAPACE_SANDBOX\u001b[0;2m (mock context for sandbox tests) \r\n\u001b[0;mCARAPACE_ZSH_HASH_DIRS\u001b[0;2m (zsh hash directories) \u001b[0;m\u001b[10A\r\u001b[22C\u001b[?25h"]
[25.331887, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22Ce\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[10A\r\u001b[23C\u001b[?25h"]
[25.333576, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[10A\r\u001b[23C\u001b[?25h"]
[25.334279, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[10A\r\u001b[23C\u001b[?25h"]
[25.500029, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[23C\u001b[K\u001b[0;4mEXCLUDES \r\n\u001b[23C\u001b[0;mx\r\n\u001b[K\u001b[0;7mCARAPACE_EXCLUDES\u001b[0;2;7m (internal completers to exclude)\u001b[0;m CARAPACE_SANDBOX\u001b[0;2m (mock context for sandbox tests)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[26.08642, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[14C\u001b[KCARAPACE_EXCLUDES \r\n\u001b[J\u001b[A\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[32C\u001b[?25h"]
[27.21699, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[32C\u001b[0;4;33m'*'\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m*\u001b[0;2;7m (exclude all) \u001b[0;m baobab\u001b[0;2m (A graphical disk usag\r\n\u001b[0;macpi\u001b[0;2m (Shows information from the /proc filesystem) \u001b[0;m basename\u001b[0;2m (strip directory and\r\n\u001b[0;macpid\u001b[0;2m (Advanced Configuration and Power Interface event daemon) \u001b[0;m bash\u001b[0;2m (GNU Bourne-Again SHell)\r\n\u001b[0;madb\u001b[0;2m (Android Debug Bridge) \u001b[0;m bash-language-server\u001b[0;2m (A langu\r\n\u001b[0;mage\u001b[0;2m (simple, modern, and secure file encryption) \u001b[0;m bat\u001b[0;2m (a cat clone with syntax \r\n\u001b[0;magg\u001b[0;2m (asciinema gif generator) \u001b[0;m batdiff\u001b[0;2m (Diff a file against \r\n\u001b[0;malsamixer\u001b[0;2m (soundcard mixer for ALSA soundcard driver, with ncurses interface)\u001b[0;m batgrep\u001b[0;2m (Quickly search throu\r\n\u001b[0;mant\u001b[0;2m (software tool for automating software build processes) \u001b[0;m batman\u001b[0;2m (Read system manual pa\r\n\u001b[0;maplay\u001b[0;2m (command-line sound recorder and player for ALSA soundcard driver) \u001b[0;m bats\u001b[0;2m (Bash Automated Testing \r\n\u001b[0;mapropos\u001b[0;2m (search the manual page names and descriptions) \u001b[0;m bc\u001b[0;2m (An arbitrary precision ca\r\n\u001b[0;mapt-cache\u001b[0;2m (query the APT cache) \u001b[0;m benthos\u001b[0;2m (A stream processor f\r\n\u001b[0;mapt-get\u001b[0;2m (APT package handling utility) \u001b[0;m black\u001b[0;2m (The uncompromising cod\r\n\u001b[0;mar\u001b[0;2m (create, modify, and extract from archives) \u001b[0;m boundary\u001b[0;2m (Boundary enables id\r\n\u001b[0;marecord\u001b[0;2m (command-line sound recorder and player for ALSA soundcard driver) \u001b[0;m brew\u001b[0;2m (The missing package man\r\n\u001b[0;masciinema\u001b[0;2m (Record and share your terminal sessions, the right way.) \u001b[0;m brotli\u001b[0;2m (compress or decompres\r\n\u001b[0;mautoconf\u001b[0;2m (Generate a configuration script from a TEMPLATE-FILE) \u001b[0;m bun\u001b[0;2m (a fast bundler, transpil\r\n\u001b[0;mavdmanager\u001b[0;2m (create and manage Android Virtual Devices) \u001b[0;m bunx\u001b[0;2m (bun package manager) \r\n\u001b[0;mawk\u001b[0;2m (pattern scanning and processing language) \u001b[0;m calibre\u001b[0;2m (Comprehensive e-book\r\n\u001b[0;maws\u001b[0;2m (Universal Command Line Interface for Amazon Web Services) \u001b[0;m capslock\u001b[0;2m (Capslock is a capab\r\n\u001b[0;maz\u001b[0;2m (Azure Command-Line Interface) \u001b[0;m carapace \r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[27.992485, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[32C\u001b[K\u001b[0;33m'*'\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[35C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[35C\u001b[?25h"]
[28.618555, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[28.619195, "o", "\u001b[?7h\u001b[?2004l\r"]
[28.677807, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[28.678665, "o", "\u001b[?25l\r\u001b[0;1;36m~\u001b[0;m \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[28.680143, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[28.705457, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[30.065778, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mg\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[30.198205, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mgh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[30.247162, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[30.248813, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[30.516624, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;4malias \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7malias\u001b[0;2;7m (Create command shortcuts) \u001b[0;m notifications\u001b[0;2m (Extension no\r\n\u001b[0;mapi\u001b[0;2m (Make an authenticated GitHub API request) \u001b[0;m nushell\u001b[0;2m (Alias for \"issue l\r\n\u001b[0;mauth\u001b[0;2m (Authenticate gh and git with GitHub) \u001b[0;m org\u001b[0;2m (Manage organizations) \r\n\u001b[0;mbrowse\u001b[0;2m (Open the repository in the browser) \u001b[0;m pr\u001b[0;2m (Manage pull requests) \r\n\u001b[0;mbug\u001b[0;2m (Alias for \"issue list --label bug\") \u001b[0;m project\u001b[0;2m (Work with GitHub P\r\n\u001b[0;mcache\u001b[0;2m (Manage Github Actions caches) \u001b[0;m release\u001b[0;2m (Manage releases) \r\n\u001b[0;mcarapace\u001b[0;2m (Alias for \"search issues rsteube/carapace --sort updated\") \u001b[0;m repo\u001b[0;2m (Manage repositories) \r\n\u001b[0;mco-author\u001b[0;2m (Extension co-author) \u001b[0;m repo-collab\u001b[0;2m (Extension repo\r\n\u001b[0;mcobra\u001b[0;2m (Alias for \"issue list --repo spf13/cobra --label area/shell-completion\")\u001b[0;m ruleset\u001b[0;2m (View info about re\r\n\u001b[0;mcodespace\u001b[0;2m (Connect to and manage codespaces) \u001b[0;m run\u001b[0;2m (View details about wor\r\n\u001b[0;mcompletion\u001b[0;2m (Generate shell completion scripts) \u001b[0;m search\u001b[0;2m (Search for reposito\r\n\u001b[0;mconfig\u001b[0;2m (Manage configuration for gh) \u001b[0;m secret\u001b[0;2m (Manage GitHub secre\r\n\u001b[0;mdash\u001b[0;2m (Extension dash) \u001b[0;m shortlog\u001b[0;2m (Shell alias for \"\r\n\u001b[0;mextension\u001b[0;2m (Manage gh extensions) \u001b[0;m ssh-key\u001b[0;2m (Manage SSH keys) \r\n\u001b[0;mfeed\u001b[0;2m (Extension feed) \u001b[0;m status\u001b[0;2m (Print information a\r\n\u001b[0;mgist\u001b[0;2m (Manage gists) \u001b[0;m variable\u001b[0;2m (Manage GitHub Act\r\n\u001b[0;mgpg-key\u001b[0;2m (Manage GPG keys) \u001b[0;m workflow\u001b[0;2m (View details abou\r\n\u001b[0;mhelp\u001b[0;2m (Help about any command) \r\n\u001b[0;missue\u001b[0;2m (Manage issues) \r\n\u001b[0;mlabel\u001b[0;2m (Manage labels) \r\n\u001b[0;7;35m \u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[32.41996, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[6C\u001b[K\r\n\u001b[J\u001b[A\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[32.422041, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[32.452303, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[32.452658, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[32.893256, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mt\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[33.082515, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ms\u001b[0;m\r\u001b[8C\u001b[?25h"]
[33.082637, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[33.263603, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mtsh\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[33.359846, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C \r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[33.989841, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;4mapps \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mapps\u001b[0;m clusters device gsutil join login mfa recordings ssh \r\naws config env headless kube logout play request status \r\naz db gcloud help kubectl ls proxy scp version\u001b[3A\r\u001b[22C\u001b[?25h"]
[36.502852, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[6C\u001b[K\r\n\u001b[J\u001b[A\r\u001b[6C\u001b[?25h"]
[36.504247, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[36.530323, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[36.530855, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[36.781296, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[37.013466, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[37.173546, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[37.258613, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[37.451732, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

255
bridges.html Normal file
View File

@ -0,0 +1,255 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Bridges - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/bridges.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="bridges"><a class="header" href="#bridges">Bridges</a></h1>
<p>With <code>~/.config/carapace/bridges.yaml</code> generic bridges can be configured for commands.</p>
<pre><code class="language-yaml">gh: cobra
opentofu: complete
tsh: kingpin
</code></pre>
<p><img src="./bridges.cast" alt="" /></p>
<blockquote>
<p><code>bridges.yaml</code> is a simpler alternative to <a href="./spec/bridge.html">Spec/Bridge</a>.
It has a higher precedence than <a href="./setup/environment.html#carapace_bridges">CARAPACES_BRIDGES</a> but lower than internal completers and specs.
So disable an internal completer with <a href="./setup/environment.html#carapace_excludes">CARAPACES_EXCLUDES</a> if you want to replace it with a bridge.</p>
</blockquote>
<p>Currently available bridges:</p>
<ul>
<li><a href="https://github.com/kislyuk/argcomplete">argcomplete</a></li>
<li><a href="https://www.gnu.org/software/bash/">bash</a></li>
<li><a href="https://github.com/carapace-sh/carapace">carapace</a></li>
<li><a href="https://github.com/clap-rs/clap">clap</a> (needs <a href="https://github.com/clap-rs/clap/issues/3166">clap-rs/clap#3166</a>)</li>
<li><a href="https://github.com/pallets/click">click</a></li>
<li><a href="https://github.com/spf13/cobra">cobra</a></li>
<li><a href="https://github.com/posener/complete">complete</a></li>
<li><a href="https://fishshell.com/">fish</a></li>
<li><a href="https://github.com/microsoft/inshellisense">inshellisense</a></li>
<li><a href="https://github.com/alecthomas/kingpin">kingpin</a></li>
<li><a href="https://microsoft.com/powershell">powershell</a></li>
<li><a href="https://github.com/urfave/cli">urfavecli</a></li>
<li><a href="https://github.com/yargs/yargs">yargs</a></li>
<li><a href="https://www.zsh.org/">zsh</a></li>
</ul>
<blockquote>
<p>Bridging frameworks should be preferred to shells (e.g. zsh) as these generally work better and have less overhead.</p>
</blockquote>
<h2 id="cache"><a class="header" href="#cache">Cache</a></h2>
<p>The list of completers is cached to not impact shell startup time.
Clear the cache with <code>carapace --clear-cache</code> if your system changes.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="style.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="spec.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="style.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="spec.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

230
carapace-bin.html Normal file
View File

@ -0,0 +1,230 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-bin - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/carapace-bin.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-bin"><a class="header" href="#carapace-bin">carapace-bin</a></h1>
<p><a href="https://github.com/carapace-sh/carapace-bin">carapace-bin</a> is a multi-shell multi-command argument completer based on <a href="https://github.com/carapace-sh/carapace">carapace-sh/carapace</a>.</p>
<p><img src="./opengraph-elvish.png" alt="" /></p>
<p>Supported shells:</p>
<ul>
<li><a href="https://www.gnu.org/software/bash/">Bash</a></li>
<li><a href="https://elv.sh/">Elvish</a></li>
<li><a href="https://fishshell.com/">Fish</a></li>
<li><a href="https://doc.redox-os.org/ion-manual/">Ion</a> (<a href="https://github.com/carapace-sh/carapace/issues/88">experimental</a>)</li>
<li><a href="https://www.nushell.sh/">Nushell</a></li>
<li><a href="http://oils.pub/">Oil</a></li>
<li><a href="https://microsoft.com/powershell">Powershell</a></li>
<li><a href="https://www.tcsh.org/">Tcsh</a> (<a href="https://github.com/carapace-sh/carapace/issues/331">experimental</a>)</li>
<li><a href="https://xon.sh/">Xonsh</a></li>
<li><a href="https://www.zsh.org/">Zsh</a></li>
</ul>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="next prefetch" href="install.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="next prefetch" href="install.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

7
clipboard.min.js vendored Normal file

File diff suppressed because one or more lines are too long

861
completers.html Normal file
View File

@ -0,0 +1,861 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Completers - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/completers.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="completers"><a class="header" href="#completers">Completers</a></h1>
<ul>
<li><a href="https://www.commandlinux.com/man-page/man1/acpi.1.html">acpi</a> Shows information from the /proc filesystem</li>
<li><a href="https://linux.die.net/man/8/acpid">acpid</a> Advanced Configuration and Power Interface event daemon</li>
<li><a href="https://developer.android.com/studio/command-line/adb">adb</a> Android Debug Bridge</li>
<li><a href="https://github.com/FiloSottile/age">age</a> simple, modern, and secure file encryption</li>
<li><a href="https://github.com/asciinema/agg">agg</a> asciinema gif generator</li>
<li><a href="https://en.wikipedia.org/wiki/Alsamixer">alsamixer</a> soundcard mixer for ALSA soundcard driver, with ncurses interface</li>
<li><a href="https://ant.apache.org/">ant</a> software tool for automating software build processes</li>
<li><a href="https://en.wikipedia.org/wiki/Aplay">aplay</a> command-line sound recorder and player for ALSA soundcard driver</li>
<li><a href="https://linux.die.net/man/1/apropos">apropos</a> search the manual page names and descriptions</li>
<li><a href="https://linux.die.net/man/8/apt-cache">apt-cache</a> query the APT cache</li>
<li><a href="https://linux.die.net/man/8/apt-get">apt-get</a> APT package handling utility</li>
<li><a href="https://salsa.debian.org/apt-team/apt">apt</a> apt is a commandline package manager</li>
<li><a href="https://linux.die.net/man/1/ar">ar</a> create, modify, and extract from archives</li>
<li><a href="https://linux.die.net/man/1/arecord">arecord</a> command-line sound recorder and player for ALSA soundcard driver</li>
<li><a href="https://aria2.github.io/">aria2c</a> The ultra fast download utility</li>
<li><a href="https://laravel.com/">artisan</a> Artisan is the command line interface included with Laravel</li>
<li><a href="https://asciinema.org/">asciinema</a> Record and share your terminal sessions, the right way.</li>
<li><a href="https://linux.die.net/man/1/autoconf">autoconf</a> Generate a configuration script from a TEMPLATE-FILE</li>
<li><a href="https://developer.android.com/studio/command-line/avdmanager">avdmanager</a> create and manage Android Virtual Devices</li>
<li><a href="https://en.wikipedia.org/wiki/AWK">awk</a> pattern scanning and processing language</li>
<li><a href="https://aws.amazon.com/cli/">aws</a> Universal Command Line Interface for Amazon Web Services</li>
<li><a href="https://docs.microsoft.com/en-us/cli/azure/">az</a> Azure Command-Line Interface</li>
<li><a href="https://wiki.gnome.org/action/show/Apps/DiskUsageAnalyzer">baobab</a> A graphical disk usage analyzer for the GNOME deskto</li>
<li><a href="https://en.wikipedia.org/wiki/Basename">basename</a> strip directory and suffix from filenames</li>
<li><a href="https://github.com/bash-lsp/bash-language-server">bash-language-server</a> A language server for Bash</li>
<li><a href="https://www.gnu.org/software/bash/">bash</a> GNU Bourne-Again SHell</li>
<li><a href="https://github.com/sharkdp/bat">bat</a> a cat clone with syntax highlighting and Git integration</li>
<li><a href="https://github.com/eth-p/bat-extras/blob/master/doc/batdiff.md">batdiff</a> Diff a file against the current git index, or display the diff between two files</li>
<li><a href="https://github.com/eth-p/bat-extras/blob/master/doc/batgrep.md">batgrep</a> Quickly search through and highlight files using ripgrep</li>
<li><a href="https://github.com/eth-p/bat-extras/blob/master/doc/batman.md">batman</a> Read system manual pages (man) using bat</li>
<li><a href="https://github.com/bats-core/bats-core">bats</a> Bash Automated Testing System</li>
<li><a href="https://linux.die.net/man/1/bc">bc</a> An arbitrary precision calculator language</li>
<li><a href="https://www.benthos.dev">benthos</a> A stream processor for mundane tasks</li>
<li><a href="https://github.com/psf/black">black</a> The uncompromising code formatter</li>
<li><a href="https://scalacenter.github.io/bloop/">bloop</a> Build and test Scala code</li>
<li><a href="https://www.bluez.org/">bluetoothctl</a> Bluetooth Control Command Line Tool</li>
<li><a href="https://www.boundaryproject.io/downloads">boundary</a> Boundary enables identity-based access management for dynamic infrastructure</li>
<li><a href="https://brew.sh/">brew</a> The missing package manager for macOS</li>
<li><a href="https://github.com/google/brotli">brotli</a> compress or decompress files</li>
<li><a href="https://docs.usebruno.com/bru-cli/overview">bru</a> Bruno CLI</li>
<li><a href="https://github.com/aristocratos/btop">btop</a> A monitor of resources</li>
<li><a href="https://bun.sh/">bun</a> a fast bundler, transpiler, JavaScript Runtime and package manager for web software</li>
<li><a href="https://bun.sh/docs/cli/bunx">bunx</a> bun package manager</li>
<li><a href="https://man7.org/linux/man-pages/man1/cal.1.html">cal</a> display a calendar</li>
<li><a href="https://calibre-ebook.com/">calibre</a> Comprehensive e-book software</li>
<li><a href="https://github.com/google/capslock">capslock</a> Capslock is a capability analysis CLI for Go packages</li>
<li><a href="https://github.com/arcnmx/cargo-clippy">cargo-clippy</a> Checks a package to catch common mistakes and improve your Rust code</li>
<li><a href="https://github.com/rust-lang/rustfmt">cargo-fmt</a> format all bin and lib files of the current crate</li>
<li><a href="https://doc.rust-lang.org/cargo/commands/cargo-metadata.html">cargo-metadata</a> Output the resolved dependencies of a package</li>
<li><a href="https://github.com/killercup/cargo-edit">cargo-rm</a> Remove a dependency from a Cargo.toml manifest file</li>
<li><a href="https://github.com/killercup/cargo-edit">cargo-set-version</a> Change a package's version in the local manifest file</li>
<li><a href="https://github.com/killercup/cargo-edit">cargo-upgrade</a> Update dependencies as recorded in the local lock file</li>
<li><a href="https://github.com/watchexec/cargo-watch">cargo-watch</a> Watches over your Cargo projects source</li>
<li><a href="https://doc.rust-lang.org/cargo/">cargo</a> Rust's package manager</li>
<li><a href="https://linux.die.net/man/1/cat">cat</a> concatenate files and print on the standard output</li>
<li><a href="https://man7.org/linux/man-pages/man8/cfdisk.8.html">cfdisk</a> display or manipulate a disk partition table</li>
<li><a href="https://github.com/charmbracelet/charm">charm</a> Do Charm stuff</li>
<li><a href="https://man7.org/linux/man-pages/man8/chcpu.8.html">chcpu</a> configure CPUs</li>
<li><a href="https://wiki.gnome.org/Apps/Cheese">cheese</a> tool to take pictures and videos from your webcam</li>
<li><a href="https://man7.org/linux/man-pages/man1/chgrp.1.html">chgrp</a> change group ownership</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/chmod.1.html">chmod</a> change file mode bits</li>
<li><a href="https://man7.org/linux/man-pages/man1/chown.1.html">chown</a> change file owner and group</li>
<li><a href="https://linux.die.net/man/8/chpasswd">chpasswd</a> update passwords in batch mode</li>
<li><a href="https://github.com/alecthomas/chroma">chroma</a> Chroma is a general purpose syntax highlighter</li>
<li><a href="https://www.chromium.org/Home">chromium</a> chromium browser</li>
<li><a href="https://en.wikipedia.org/wiki/Chroot">chroot</a> run command or interactive shell with special root directory</li>
<li><a href="https://en.wikipedia.org/wiki/Chsh">chsh</a> Change your login shell</li>
<li><a href="https://github.com/CircleCI-Public/circleci-cli">circleci</a> Use CircleCI from the command line</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/cksum.1.html">cksum</a> compute and verify file checksums</li>
<li><a href="http://www.clamav.net/">clamav-config</a> clamav config</li>
<li><a href="http://www.clamav.net/">clamav-milter</a> milter compatible scanner</li>
<li><a href="http://www.clamav.net/">clambc</a> Bytecode Analysis and Testing Tool</li>
<li><a href="http://www.clamav.net/">clamconf</a> Clam AntiVirus configuration utility</li>
<li><a href="http://www.clamav.net/">clamd</a> an anti-virus daemon</li>
<li><a href="http://www.clamav.net/">clamdscan</a> scan files and directories for viruses using Clam AntiVirus Daemon</li>
<li><a href="http://www.clamav.net/">clamdtop</a> monitor the Clam AntiVirus Daemon</li>
<li><a href="http://www.clamav.net/">clamonacc</a> an anti-virus on-access scanning daemon and clamd client</li>
<li><a href="http://www.clamav.net/">clamscan</a> scan files and directories for viruses</li>
<li><a href="http://www.clamav.net/">clamsubmit</a> File submission utility for ClamAV</li>
<li><a href="https://cmus.github.io/">cmus</a> Curses based music player</li>
<li><a href="https://code.visualstudio.com/insiders/">code-insiders</a> Visual Studio Code Insiders</li>
<li><a href="https://code.visualstudio.com/">code</a> Visual Studio Code</li>
<li><a href="https://docs.codecov.com/docs/codecov-uploader">codecov</a> codecov uploader</li>
<li><a href="https://linux.die.net/man/1/comm">comm</a> compare two sorted files line by line</li>
<li><a href="https://github.com/conda/conda-content-trust">conda-content-trust</a> Signing and verification tools for Conda</li>
<li><a href="https://github.com/conda/conda/tree/main/conda_env">conda-env</a> Manage conda environments</li>
<li><a href="https://docs.conda.io/en/latest/">conda</a> conda is a tool for managing and deploying applications, environments and packages</li>
<li><a href="https://github.com/brndnmtthws/conky">conky</a> A system monitor for X originally based on the torsmo code</li>
<li><a href="https://www.consul.io/">consul</a> Consul automates networking for simple and secure application delivery</li>
<li><a href="https://www.freedesktop.org/software/systemd/man/coredumpctl.html">coredumpctl</a> List or retrieve coredumps from the journal</li>
<li><a href="https://man7.org/linux/man-pages/man1/cp.1.html">cp</a> copy files and directories</li>
<li><a href="https://linux.die.net/man/1/csplit">csplit</a> split a file into sections determined by context lines</li>
<li><a href="https://github.com/wfxr/csview">csview</a> A high performance csv viewer with cjk/emoji support</li>
<li><a href="https://ultimaker.com/software/ultimaker-cura">cura</a> Powerful, easy-to-use 3D printing software</li>
<li><a href="https://github.com/curl/curl">curl</a> transfer a URL</li>
<li><a href="https://man7.org/linux/man-pages/man1/cut.1.html">cut</a> remove sections from each line of files</li>
<li><a href="https://dagger.io/">dagger</a> The Dagger CLI provides a command-line interface to Dagger.</li>
<li><a href="https://darktable-org.github.io/dtdocs/en-us/special-topics/program-invocation/darktable-cli/">darktable-cli</a> a command line darktable variant</li>
<li><a href="https://darktable-org.github.io/dtdocs/en-us/">darktable</a> a digital photography workflow application</li>
<li><a href="https://dart.dev/">dart</a> A command-line utility for Dart development</li>
<li><a href="https://linux.die.net/man/1/date">date</a> print or set the system date and time</li>
<li><a href="https://www.getdbt.com/">dbt</a> An ELT tool for managing your SQL transformations and data models</li>
<li><a href="https://linux.die.net/man/1/dc">dc</a> an arbitrary precision calculator</li>
<li><a href="https://linux.die.net/man/1/dd">dd</a> convert and copy a file</li>
<li><a href="https://pkg.go.dev/golang.org/x/tools/internal/cmd/deadcode">deadcode</a> The deadcode command reports unreachable functions in Go programs</li>
<li><a href="https://github.com/dandavison/delta">delta</a> A viewer for git and diff output</li>
<li><a href="https://deno.land/">deno</a> A modern JavaScript and TypeScript runtime</li>
<li><a href="https://www.jetpack.io/devbox/">devbox</a> Instant, easy, predictable shells and containers</li>
<li><a href="https://man7.org/linux/man-pages/man1/df.1.html">df</a> report file system disk space usage</li>
<li><a href="https://github.com/rolinh/dfc">dfc</a> report file system space usage information with style</li>
<li><a href="https://linux.die.net/man/1/dict">dict</a> Query a dictd server for the definition of a word</li>
<li><a href="https://linux.die.net/man/1/diff3">diff3</a> compare three files line by line</li>
<li><a href="https://linux.die.net/man/1/diff">diff</a> compare files line by line</li>
<li><a href="https://linux.die.net/man/1/dig">dig</a> DNS lookup utility</li>
<li><a href="https://linux.die.net/man/1/dir">dir</a> list directory contents</li>
<li><a href="https://linux.die.net/man/1/dircolors">dircolors</a> color setup for ls</li>
<li><a href="https://direnv.net/">direnv</a> unclutter your .profile</li>
<li><a href="https://linux.die.net/man/1/dirname">dirname</a> strip last component from file name</li>
<li><a href="https://github.com/wagoodman/dive">dive</a> Docker Image Visualizer &amp; Explorer</li>
<li><a href="https://github.com/go-delve/delve">dlv</a> Delve is a debugger for the Go programming language.</li>
<li><a href="https://linux.die.net/man/1/dmenu">dmenu</a> dynamic menu</li>
<li><a href="https://linux.die.net/man/8/dmesg">dmesg</a> Display or control the kernel ring buffer</li>
<li><a href="https://github.com/anacrolix/dms">dms</a> A UPnP DLNA Digital Media Server</li>
<li><a href="https://en.wikipedia.org/wiki/Dnsmasq">dnsmasq</a> A lightweight DHCP and caching DNS server</li>
<li><a href="https://man.openbsd.org/doas">doas</a> execute a command as another user</li>
<li><a href="https://github.com/docker/buildx">docker-buildx</a> Docker Buildx</li>
<li><a href="https://docs.docker.com/compose/">docker-compose</a> Docker Compose</li>
<li><a href="https://docs.docker.com/engine/scan/">docker-scan</a> A tool to scan your images</li>
<li><a href="https://docs.docker.com/compose/">docker</a> A self-sufficient runtime for containers</li>
<li><a href="https://docs.docker.com/engine/reference/commandline/dockerd/">dockerd</a> A self-sufficient runtime for containers</li>
<li><a href="https://docs.digitalocean.com/reference/doctl/">doctl</a> doctl is a command line interface (CLI) for the DigitalOcean API</li>
<li><a href="https://github.com/ing-bank/doing-cli">doing</a> CLI for repository/issue workflow on Azure Devops</li>
<li><a href="https://en.wikipedia.org/wiki/Unix2dos">dos2unix</a> DOS/Mac to Unix and vice versa text file format converter</li>
<li><a href="https://github.com/pbrisbin/downgrade">downgrade</a> Downgrade Arch Linux packages</li>
<li><a href="https://linux.die.net/man/1/dpkg">dpkg</a> package manager for Debian</li>
<li><a href="https://linux.die.net/man/1/du">du</a> estimate file space usage</li>
<li><a href="https://manual.calibre-ebook.com/de/generated/de/ebook-convert.html">ebook-convert</a> Convert an e-book from one format to another</li>
<li><a href="https://linux.die.net/man/1/grep">egrep</a> print lines that match patterns</li>
<li><a href="https://www.electronjs.org/">electron</a> Build cross platform desktop apps with JavaScript, HTML, and CSS</li>
<li><a href="https://elv.sh/">elvish</a> expressive programming language and a versatile interactive shell</li>
<li><a href="https://linux.die.net/man/1/env">env</a> run a program in a modified environment</li>
<li><a href="https://linux.die.net/man/1/envsubst">envsubst</a> Substitutes the values of environment variables</li>
<li><a href="https://eza.rocks/">exa</a> a modern replacement for ls</li>
<li><a href="https://linux.die.net/man/1/expand">expand</a> convert tabs to spaces</li>
<li><a href="https://en.wikipedia.org/wiki/Expr">expr</a> evaluate expressions</li>
<li><a href="https://eza.rocks/">eza</a> a modern replacement for ls</li>
<li><a href="https://github.com/openfaas/faas-cli">faas-cli</a> Manage your OpenFaaS functions from the command line</li>
<li><a href="https://man7.org/linux/man-pages/man1/factor.1.html">factor</a> factor numbers</li>
<li><a href="https://linux.die.net/man/1/fakechroot">fakechroot</a> gives a fake chroot environment</li>
<li><a href="https://linux.die.net/man/1/fakeroot-sysv">fakeroot</a> run a command in an environment faking root privileges for file manipulation</li>
<li><a href="https://github.com/fastfetch-cli/fastfetch">fastfetch</a> A neofetch-like tool for fetching system information and displaying them in a pretty way</li>
<li><a href="https://linux.die.net/man/1/fc-cache">fc-cache</a> Build font information caches</li>
<li><a href="https://linux.die.net/man/1/fc-cat">fc-cat</a> read font information cache files</li>
<li><a href="https://manpages.debian.org/testing/fontconfig/fc-conflist.1.en.html">fc-conflist</a> list the configuration files processed by Fontconfig</li>
<li><a href="https://linux.die.net/man/1/fc-list">fc-list</a> list available fonts</li>
<li><a href="https://github.com/sharkdp/fd">fd</a> find entries in the filesystem</li>
<li><a href="https://en.wikipedia.org/wiki/Fdisk">fdisk</a> manipulate disk partition table</li>
<li><a href="https://ffmpeg.org/">ffmpeg</a> Hyper fast Audio and Video encoder</li>
<li><a href="https://en.wikipedia.org/wiki/Grep">fgrep</a> print lines that match patterns</li>
<li><a href="https://linux.die.net/man/1/file">file</a> determine file type</li>
<li><a href="https://linux.die.net/man/1/find">find</a> search for files in a directory hierarchy</li>
<li><a href="https://www.mozilla.org/en-US/firefox/new/">firefox</a> Firefox Browser</li>
<li><a href="https://fishshell.com/">fish</a> the friendly interactive shell</li>
<li><a href="https://flatpak.org/">flatpak</a> Linux application sandboxing and distribution framework</li>
<li><a href="https://flutter.dev/">flutter</a> Manage your Flutter app development</li>
<li><a href="https://linux.die.net/man/1/fmt">fmt</a> simple optimal text formatter</li>
<li><a href="https://linux.die.net/man/1/fold">fold</a> wrap each input line to fit in specified width</li>
<li><a href="https://codeberg.org/dnkl/foot">foot</a> A fast, lightweight and minimalistic Wayland terminal emulator</li>
<li><a href="https://man7.org/linux/man-pages/man1/free.1.html">free</a> Display amount of free and used memory in the system</li>
<li><a href="https://github.com/charmbracelet/freeze">freeze</a> Generate images of code and terminal output</li>
<li><a href="https://linux.die.net/man/1/ftp">ftp</a> File Transfer Protocol client</li>
<li><a href="https://linux.die.net/man/8/ftpd">ftpd</a> File Transfer Protocol daemon</li>
<li><a href="https://github.com/gemfury/cli">fury</a> Command line interface to Gemfury API</li>
<li><a href="https://github.com/junegunn/fzf">fzf</a> a command-line fuzzy finder</li>
<li><a href="https://www.gatsbyjs.com/">gatsby</a> Build blazing fast, modern apps and websites with React</li>
<li><a href="https://cloud.google.com/sdk/gcloud/">gcloud</a> manage Google Cloud Platform resources and developer workflow</li>
<li><a href="https://www.sourceware.org/gdb/">gdb</a> This is the GNU debugger</li>
<li><a href="https://github.com/wkentaro/gdown">gdown</a> Google Drive Public File Downloader when Curl/Wget Fails</li>
<li><a href="https://github.com/dundee/gdu">gdu</a> Pretty fast disk usage analyzer written in Go</li>
<li><a href="https://carapace-sh.github.io/carapace-bin/environment.html">get-env</a> get environment variable</li>
<li><a href="https://github.com/masneyb/gftp">gftp</a> file transfer client for *NIX based machines</li>
<li><a href="https://github.com/github/gh-copilot">gh-copilot</a> Your AI command line copilot</li>
<li><a href="https://github.com/dlvhdr/gh-dash">gh-dash</a> A beautiful CLI dashboard for GitHub</li>
<li><a href="https://cli.github.com/">gh</a> GitHub CLI</li>
<li><a href="https://ghostty.org/">ghostty</a> a fast, feature-rich, and cross-platform terminal emulator</li>
<li><a href="https://www.gimp.org/">gimp</a> an image manipulation and paint program</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-abort">git-abort</a> Abort current rebase, merge or cherry-pick, without the need to find exact command in history</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-alias">git-alias</a> Define, search and show aliases</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-archive-file">git-archive-file</a> Export the current HEAD of the git repository to an archive</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-authors">git-authors</a> Generate authors report</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-browse-ci">git-browse-ci</a> Opens the current git repository CI page in your default web browser</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-browse">git-browse</a> Opens the current git repository website in your default web browser</li>
<li><a href="https://clang.llvm.org/docs/ClangFormat.html">git-clang-format</a> run clang-format on lines that differ</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-clear-soft">git-clear-soft</a> Soft clean up a repository</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-clear">git-clear</a> Rigorously clean up a repository</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-coauthor">git-coauthor</a> Add a co-author to the last commit</li>
<li><a href="https://github.com/tj/git-extras">git-extras</a> Awesome GIT utilities</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-info">git-info</a> Returns information on current repository</li>
<li><a href="https://github.com/tj/git-extras/blob/master/Commands.md#git-standup">git-standup</a> Recall the commit history</li>
<li><a href="https://git-scm.com/">git</a> the stupid content tracker</li>
<li><a href="https://git-scm.com/docs/gitk">gitk</a> The Git repository browser</li>
<li><a href="https://github.com/extrawurst/gitui">gitui</a> blazing fast terminal-ui for git</li>
<li><a href="https://gitlab.com/gitlab-org/cli">glab</a> A GitLab CLI tool.</li>
<li><a href="https://github.com/charmbracelet/glow">glow</a> Render markdown on the CLI, with pizzazz!</li>
<li><a href="http://www.GraphicsMagick.org/">gm</a> command-line utility to create, edit, compare, convert, or display images</li>
<li><a href="https://wiki.gnome.org/Projects/GnomeKeyring/">gnome-keyring-daemon</a> The Gnome Keyring Daemon</li>
<li><a href="https://wiki.gnome.org/Projects/GnomeKeyring/">gnome-keyring</a> The gnome-keyring commandline tool</li>
<li><a href="https://apps.gnome.org/app/org.gnome.Maps/">gnome-maps</a> A map application for GNOME</li>
<li><a href="https://help.gnome.org/users/gnome-terminal/stable/">gnome-terminal</a> A terminal emulator for GNOME</li>
<li><a href="https://github.com/msoap/go-carpet">go-carpet</a> show test coverage for Go source files</li>
<li><a href="https://pkg.go.dev/cmd/asm">go-tool-asm</a> go assembler</li>
<li><a href="https://pkg.go.dev/cmd/buildid">go-tool-buildid</a> Buildid displays or updates the build ID stored in a Go package or binary.</li>
<li><a href="https://pkg.go.dev/cmd/cgo">go-tool-cgo</a> Cgo enables the creation of Go packages that call C code</li>
<li><a href="https://pkg.go.dev/cmd/compile">go-tool-compile</a> compiles a single Go packag</li>
<li><a href="https://go.dev/testing/coverage/">go-tool-covdata</a> read and manipulate coverage data files</li>
<li><a href="https://pkg.go.dev/cmd/cover">cover</a> analyze coverage profiles</li>
<li><a href="https://pkg.go.dev/cmd/dist">go-tool-dist</a> Dist helps bootstrap, build, and test the Go distribution</li>
<li><a href="https://pkg.go.dev/cmd/doc">go-tool-doc</a> show documentation for package or symbol</li>
<li><a href="https://pkg.go.dev/cmd/fix">fix</a> Fix finds Go programs that use old APIs</li>
<li><a href="https://pkg.go.dev/cmd/link">go-tool-link</a> go linker</li>
<li><a href="https://github.com/uber-go/mock">go-tool-mockgen</a> mock interfaces</li>
<li><a href="https://pkg.go.dev/cmd/nm">nm</a> Nm lists the symbols defined or used by an object file, archive, or executabl</li>
<li><a href="https://pkg.go.dev/cmd/objdump">go-tool-objdump</a> Objdump disassembles executable files</li>
<li><a href="https://pkg.go.dev/cmd/pack">go-tool-pack</a> Pack is a simple version of the traditional Unix ar tool</li>
<li><a href="https://golang.org/">go</a> Go is a tool for managing Go source code</li>
<li><a href="https://github.com/fzipp/gocyclo">gocyclo</a> Calculate cyclomatic complexities of Go functions</li>
<li><a href="https://pkg.go.dev/cmd/gofmt">gofmt</a> format Go source code</li>
<li><a href="https://pkg.go.dev/golang.org/x/tools/cmd/goimports">goimports</a> updates your Go import lines</li>
<li><a href="https://golangci-lint.run/">golangci-lint</a> golangci-lint is a smart linters runner.</li>
<li><a href="https://pkg.go.dev/golang.org/x/tools/cmd/gonew">gonew</a> Gonew starts a new Go module by copying a template module</li>
<li><a href="https://www.google.com/chrome/index.html">google-chrome</a> chrome browser</li>
<li><a href="https://pkg.go.dev/golang.org/x/tools/gopls">gopls</a> gopls is a Go language server</li>
<li><a href="https://goreleaser.com/">goreleaser</a> Deliver Go binaries as fast and easily as possible</li>
<li><a href="https://github.com/jondot/goweight">goweight</a> A tool to analyze and troubleshoot a Go binary size</li>
<li><a href="https://gparted.org/">gparted</a> GNOME Partition Editor for manipulating disk partitions</li>
<li><a href="https://linux.die.net/man/1/gpasswd">gpasswd</a> administer /etc/group and /etc/gshadow</li>
<li><a href="https://linux.die.net/man/1/gpg-agent">gpg-agent</a> Secret key management for GnuPG</li>
<li><a href="https://gnupg.org/">gpg</a> OpenPGP encryption and signing tool</li>
<li><a href="https://gradle.org/">gradle</a> Gradle Build Tool</li>
<li><a href="https://www.gnu.org/software/grep/">grep</a> print lines that match patterns</li>
<li><a href="https://linux.die.net/man/8/groupadd">groupadd</a> create a new group</li>
<li><a href="https://linux.die.net/man/8/groupdel">groupdel</a> delete a group</li>
<li><a href="https://linux.die.net/man/8/groupmems">groupmems</a> administer members of a user's primary group</li>
<li><a href="https://linux.die.net/man/8/groupmod">groupmod</a> modify a group definition on the system</li>
<li><a href="https://linux.die.net/man/1/groups">groups</a> display current group names</li>
<li><a href="https://github.com/anchore/grype">grype</a> A vulnerability scanner for container images, filesystems, and SBOMs</li>
<li><a href="https://github.com/Zxilly/go-size-analyzer">gsa</a> A tool for analyzing the size of compiled Go binaries</li>
<li><a href="https://github.com/gulpjs/gulp-cli">gulp</a> Command Line Interface for gulp</li>
<li><a href="https://github.com/charmbracelet/gum">gum</a> A tool for glamorous shell scripts</li>
<li><a href="https://linux.die.net/man/1/gunzip">gunzip</a> Uncompress files</li>
<li><a href="https://linux.die.net/man/1/gzip">gzip</a> Compress or uncompress files</li>
<li><a href="https://linux.die.net/man/8/halt">halt</a> halt the machine</li>
<li><a href="https://linux.die.net/man/1/head">head</a> output the first part of files</li>
<li><a href="https://helix-editor.com/">helix</a> A post-modern text editor</li>
<li><a href="https://helm.sh/">helm</a> The Helm package manager for Kubernetes.</li>
<li><a href="https://github.com/Praqma/Helmsman">helmsman</a> Helmsman is a Helm Charts as Code tool</li>
<li><a href="https://hexchat.github.io/">hexchat</a> IRC Client</li>
<li><a href="https://linux.die.net/man/1/hexdump">hexdump</a> Display file contents in hexadecimal, decimal, octal, or ascii</li>
<li><a href="https://linux.die.net/man/1/hostid">hostid</a> print the numeric identifier for the current host</li>
<li><a href="https://linux.die.net/man/1/hostname">hostname</a> show or set system host name</li>
<li><a href="https://htop.dev/">htop</a> interactive process viewer</li>
<li><a href="https://httpie.io/">http</a> command-line HTTP client for the API era</li>
<li><a href="https://httpie.io/">https</a> command-line HTTP client for the API era</li>
<li><a href="https://man7.org/linux/man-pages/man1/hugetop.1.html">hugetop</a> report huge page information</li>
<li><a href="https://gohugo.io/">hugo</a> hugo builds your site</li>
<li><a href="https://hurl.dev/">hurl</a> run and test HTTP requests with plain text</li>
<li><a href="https://github.com/openSUSE/hwinfo">hwinfo</a> Probe for hardware</li>
<li><a href="https://helix-editor.com/">hx</a> A post-modern text editor</li>
<li><a href="https://gitlab.manjaro.org/packages/community/i3/i3-scrot">i3-scrot</a> simple screenshot script</li>
<li><a href="https://i3wm.org/">i3</a> an improved dynamic, tiling window manager</li>
<li><a href="https://aur.archlinux.org/packages/i3exit/">i3exit</a> exit-script for i3</li>
<li><a href="https://i3wm.org/i3lock/">i3lock</a> improved screen locker</li>
<li><a href="https://github.com/greshake/i3status-rust">i3status-rs</a> A feature-rich and resource-friendly replacement for i3status, written in Rust</li>
<li><a href="https://i3wm.org/i3status/">i3status</a> Generates a status line for i3bar, dzen2, xmobar or lemonbar</li>
<li><a href="https://linux.die.net/man/1/id">id</a> Print user and group information</li>
<li><a href="https://git.sr.ht/~exec64/imv/">imv</a> Image viewer for X11 and Wayland</li>
<li><a href="https://inkscape.org/">inkscape</a> an SVG (Scalable Vector Graphics) editing program</li>
<li><a href="https://github.com/microsoft/inshellisense">inshellisense</a> IDE style command line auto complete</li>
<li><a href="https://linux.die.net/man/1/install">install</a> copy files and set attributes</li>
<li><a href="https://gitlab.redox-os.org/redox-os/ion/">ion</a> The Ion Shell</li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/specs/man/jar.html">jar</a> create an archive for classes and resources</li>
<li><a href="https://en.wikipedia.org/wiki/Java_(programming_language)">java</a> Launches a Java application</li>
<li><a href="https://en.wikipedia.org/wiki/Javac">javac</a> Reads Java class and interface definitions and compiles them into bytecode and class files</li>
<li><a href="https://github.com/martinvonz/jj">jj</a> Jujutsu (An experimental VCS)</li>
<li><a href="https://linux.die.net/man/1/join">join</a> join lines of two files on a common field</li>
<li><a href="https://man7.org/linux/man-pages/man1/journalctl.1.html">journalctl</a> Query the journal</li>
<li><a href="https://stedolan.github.io/jq/">jq</a> Command-line JSON processor</li>
<li><a href="https://julialang.org/">julia</a> high-level, high-performance dynamic programming language for technical computing</li>
<li><a href="https://github.com/casey/just">just</a> Just a command runner</li>
<li><a href="https://github.com/kak-lsp/kak-lsp">kak-lsp</a> Kakoune Language Server Protocol Client</li>
<li><a href="http://kakoune.org/">kak</a> a vim-inspired, selection oriented code editor</li>
<li><a href="https://linux.die.net/man/1/kill">kill</a> Forcibly terminate a process</li>
<li><a href="https://linux.die.net/man/1/killall">killall</a> kill processes by name</li>
<li><a href="https://github.com/kmonad/kmonad">kmonad</a> an onion of buttons</li>
<li><a href="https://kompose.io/">kompose</a> A tool helping Docker Compose users move to Kubernetes</li>
<li><a href="https://kotlinlang.org/docs/command-line.html">kotlin</a> run Kotlin programs, scripts or REPL</li>
<li><a href="https://kotlinlang.org/docs/command-line.html#manual-install">kotlinc</a> Kotlin command-line compiler</li>
<li><a href="https://ktlint.github.io/">ktlint</a> An anti-bikeshedding Kotlin linter with built-in formatter</li>
<li><a href="https://kubernetes.io/docs/reference/setup-tools/kubeadm/">kubeadm</a> kubeadm: easily bootstrap a secure Kubernetes cluster</li>
<li><a href="https://kubernetes.io/docs/reference/kubectl/overview/">kubectl</a> kubectl controls the Kubernetes cluster manager</li>
<li><a href="https://linux.die.net/man/1/last">last</a> Show a listing of last logged in users</li>
<li><a href="https://linux.die.net/man/1/lastb">lastb</a> Show a listing of last logged in users</li>
<li><a href="https://linux.die.net/man/8/lastlog">lastlog</a> reports the most recent login of all users or of a given user</li>
<li><a href="https://github.com/jesseduffield/lazygit">lazygit</a> simple terminal UI for git commands</li>
<li><a href="https://github.com/gokcehan/lf">lf</a> terminal file manager</li>
<li><a href="https://github.com/haikarainen/light">light</a> a program to control backlight controllers</li>
<li><a href="https://github.com/canonical/lightdm">lightdm</a> a display manager</li>
<li><a href="https://linux.die.net/man/3/link">link</a> call the link function to create a link to a file</li>
<li><a href="https://linux.die.net/man/1/ln">ln</a> make links between files</li>
<li><a href="https://lnav.org/">lnav</a> ncurses-based log file viewer</li>
<li><a href="https://github.com/dipu-bd/lightnovel-crawler">lncrawl</a> Generate and download e-books from online sources</li>
<li><a href="https://linux.die.net/man/1/locale">locale</a> Get locale-specific information</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/localectl.1.html">localectl</a> Query or change system locale and keyboard settings</li>
<li><a href="https://linux.die.net/man/1/logname">logname</a> print user's login name</li>
<li><a href="https://linux.die.net/man/1/ls">ls</a> list directory contents</li>
<li><a href="https://linux.die.net/man/1/lsb_release">lsb_release</a> prints certain LSB (Linux Standard Base) and Distribution information</li>
<li><a href="https://man7.org/linux/man-pages/man8/lsblk.8.html">lsblk</a> list block devices</li>
<li><a href="https://man7.org/linux/man-pages/man1/lsclocks.1.html">lsclocks</a> display system clocks</li>
<li><a href="https://man7.org/linux/man-pages/man1/lscpu.1.html">lscpu</a> display information about the CPU architecture</li>
<li><a href="https://man7.org/linux/man-pages/man1/lsfd.1.html">lsfd</a> list file descriptors</li>
<li><a href="https://man7.org/linux/man-pages/man1/lsirq.1.html">lsirq</a> utility to display kernel interrupt information</li>
<li><a href="https://man7.org/linux/man-pages/man8/lslocks.8.html">lslocks</a> List local system locks</li>
<li><a href="https://man7.org/linux/man-pages/man1/lslogins.1.html">lslogins</a> Display information about known users in the system</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/lsmem.1.html">lsmem</a> list the ranges of available memory with their online status</li>
<li><a href="https://man7.org/linux/man-pages/man8/lsns.8.html">lsns</a> List system namespaces</li>
<li><a href="https://linux.die.net/man/8/lsusb">lsusb</a> list USB devices</li>
<li><a href="https://www.lua.org/">lua</a> Lua interpreter</li>
<li><a href="https://linux.die.net/man/1/xz">lzcat</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://linux.die.net/man/1/xz">lzma</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://linux.die.net/man/1/make">make</a> GNU make utility to maintain groups of programs</li>
<li><a href="https://wiki.archlinux.org/title/Makepkg">makepkg</a> make packages compatible for use with pacman</li>
<li><a href="https://man7.org/linux/man-pages/man1/man.1.html">man</a> an interface to the system reference manuals</li>
<li><a href="https://github.com/marp-team/marp-cli">marp</a> A CLI interface for Marp and Marpit based converters</li>
<li><a href="https://sourceforge.net/projects/mcomix/">mcomix</a> GTK Comic Book Viewer</li>
<li><a href="https://linux.die.net/man/1/md5sum">md5sum</a> compute and check MD5 message digest</li>
<li><a href="https://github.com/rust-lang/mdBook">mdbook</a> Creates a book from markdown files</li>
<li><a href="https://meldmerge.org/">meld</a> Meld is a file and directory comparison tool</li>
<li><a href="https://github.com/charmbracelet/melt">melt</a> melt generates a seed phrase from an SSH key</li>
<li><a href="https://micro-editor.github.io/">micro</a> A modern and intuitive terminal-based text editor</li>
<li><a href="https://minikube.sigs.k8s.io/docs/">minikube</a> minikube quickly sets up a local Kubernetes cluster</li>
<li><a href="https://mitmproxy.org/">mitmproxy</a> interactive, SSL/TLS-capable intercepting proxy</li>
<li><a href="https://hexdocs.pm/mix/Mix.html">mix</a> A build automation tool for working with applications written in the Elixir programming language</li>
<li><a href="https://github.com/FiloSottile/mkcert">mkcert</a> simple tool for making locally-trusted development certificates</li>
<li><a href="https://linux.die.net/man/1/mkdir">mkdir</a> make directories</li>
<li><a href="https://linux.die.net/man/3/mkfifo">mkfifo</a> make FIFOs (named pipes)</li>
<li><a href="https://linux.die.net/man/8/mkfs">mkfs</a> Make a Linux filesystem</li>
<li><a href="https://linux.die.net/man/3/mknod">mknod</a> make block or character special files</li>
<li><a href="https://linux.die.net/man/8/mkswap">mkswap</a> Set up a Linux swap area</li>
<li><a href="https://linux.die.net/man/1/mktemp">mktemp</a> create a temporary file or directory</li>
<li><a href="https://linux.die.net/man/8/modinfo">modinfo</a> Show information about a Linux Kernel module</li>
<li><a href="https://linux.die.net/man/8/modprobe">modprobe</a> Add and remove modules from the Linux Kernel</li>
<li><a href="https://ansible.readthedocs.io/projects/molecule/">molecule</a> Testing framework to aid in the development of Ansible roles</li>
<li><a href="https://man7.org/linux/man-pages/man1/more.1.html">more</a> display the contents of a file in a terminal</li>
<li><a href="https://mosh.org/">mosh</a> mobile shell with roaming and intelligent local echo</li>
<li><a href="https://linux.die.net/man/8/mount">mount</a> mount a filesystem</li>
<li><a href="http://users.xfce.org/~benny/xfce/apps.html">mousepad</a> Mousepad is a simple text editor for the Xfce desktop environment</li>
<li><a href="https://mpv.io/">mpv</a> a media player</li>
<li><a href="https://linux.die.net/man/1/mv">mv</a> move (rename) files</li>
<li><a href="https://maven.apache.org/">mvn</a> Apache Maven is a software project management and comprehension tool</li>
<li><a href="https://www.nano-editor.org/">nano</a> Nano's ANOther editor, inspired by Pico</li>
<li><a href="https://nc110.sourceforge.io/">nc</a> simple Unix utility which reads and writes data across network connections</li>
<li><a href="https://linux.die.net/man/1/ncdu">ncdu</a> NCurses Disk Usage</li>
<li><a href="https://neomutt.org/">neomutt</a> The NeoMutt Mail User Agent</li>
<li><a href="https://nc110.sourceforge.io/">netcat</a> simple Unix utility which reads and writes data across network connections</li>
<li><a href="https://github.com/postmanlabs/newman">newman</a> Newman is a command-line collection runner for Postman</li>
<li><a href="https://github.com/newrelic/newrelic-cli">newrelic</a> The New Relic CLI</li>
<li><a href="https://github.com/goreleaser/nfpm">nfpm</a> Packages apps on RPM, Deb and APK formats based on a YAML configuration file</li>
<li><a href="https://angular.io/cli">ng</a> The Angular CLI</li>
<li><a href="https://linux.die.net/man/1/nice">nice</a> run a program with modified scheduling priority</li>
<li><a href="https://github.com/uber-go/nilaway">nilaway</a> Static Analysis tool to detect potential Nil panics in Go code</li>
<li><a href="https://nixos.org/manual/nix/stable/command-ref/nix-build.html">nix-build</a> build a Nix expression</li>
<li><a href="https://nixos.org/manual/nix/stable/command-ref/nix-channel.html">nix-channel</a> manage Nix channels</li>
<li><a href="https://nixos.org/manual/nix/stable/command-ref/nix-instantiate.html">nix-instantiate</a> instantiate store derivations from Nix expression</li>
<li><a href="https://nixos.org/manual/nix/stable/command-ref/nix-shell.html">nix-shell</a> start an interactive shell based on a Nix expression</li>
<li><a href="https://github.com/NixOS/nix">nix</a> a tool for reproducible and declarative configuration management</li>
<li><a href="https://nixos.org">nixos-rebuild</a> reconfigure a NixOS machine</li>
<li><a href="https://linux.die.net/man/1/nl">nl</a> number lines of files</li>
<li><a href="https://developer-old.gnome.org/NetworkManager/stable/nmcli.html">nmcli</a> command-line tool for controlling NetworkManager</li>
<li><a href="https://nodejs.org/en/">node</a> server-side JavaScript runtime</li>
<li><a href="https://linux.die.net/man/1/nohup">nohup</a> run a command immune to hangups, with output to a non-tty</li>
<li><a href="https://www.nomadproject.io/">nomad</a> Nomad is an easy-to-use, flexible, and performant workload orchestrator</li>
<li><a href="https://www.npmjs.com/">npm</a> the package manager for JavaScript</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/nproc.1.html">nproc</a> print the number of processing units available</li>
<li><a href="https://linux.die.net/man/8/ntpd">ntpd</a> NTP daemon program</li>
<li><a href="https://www.nushell.sh/">nu</a> Nushell</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/numfmt.1.html">numfmt</a> Convert numbers from/to human-readable strings</li>
<li><a href="https://neovim.io/">nvim</a> edit text</li>
<li><a href="https://linux.die.net/man/1/od">od</a> dump files in octal and other formats</li>
<li><a href="https://ollama.com/">ollama</a> Large language model runner</li>
<li><a href="https://openscad.org/">openscad</a> script file based graphical CAD environment</li>
<li><a href="http://optipng.sourceforge.net/">optipng</a> Optimize Portable Network Graphics files</li>
<li><a href="https://www.packer.io/">packer</a> Create identical machine images for multiple platforms from a single source configuration.</li>
<li><a href="https://man.archlinux.org/man/pacman-conf.8.en">pacman-conf</a> query pacman's configuration file</li>
<li><a href="https://manpages.debian.org/testing/pacman-package-manager/pacman-db-upgrade.8.en.html">pacman-db-upgrade</a> Upgrade the local pacman database to a newer format</li>
<li><a href="https://archlinux.org/pacman/pacman-key.8.html">pacman-key</a> Manage pacman's list of trusted keys</li>
<li><a href="https://wiki.manjaro.org/index.php?title=Pacman-mirrors">pacman-mirrors</a> generate pacman mirrorlist</li>
<li><a href="https://wiki.archlinux.de/title/Pacman">pacman</a> package manager utility</li>
<li><a href="https://www.palemoon.org/">palemoon</a> Pale Moon browser</li>
<li><a href="https://wiki.manjaro.org/index.php/Pamac">pamac</a> package manager utility</li>
<li><a href="https://pandoc.org/">pandoc</a> general markup converter</li>
<li><a href="https://github.com/Morganamilo/paru">paru</a> Feature packed AUR helper</li>
<li><a href="https://www.passwordstore.org/">pass</a> stores, retrieves, generates, and synchronizes passwords securely</li>
<li><a href="https://linux.die.net/man/1/passwd">passwd</a> change user password</li>
<li><a href="https://linux.die.net/man/1/paste">paste</a> merge lines of files</li>
<li><a href="https://linux.die.net/man/1/patch">patch</a> appy a diff file to an original</li>
<li><a href="https://linux.die.net/man/1/pathchk">pathchk</a> check whether file names are valid or portable</li>
<li><a href="http://wummel.github.io/patool/">patool</a> An archive file manager</li>
<li><a href="https://wiki.lxde.org/en/PCManFM">pcmanfm</a> A lightweight Gtk+ based file manager for X Window</li>
<li><a href="https://man7.org/linux/man-pages/man1/pgrep.1.html">pgrep</a> look up processes based on name and other attributes</li>
<li><a href="https://www.php.net/">php</a> PHP Command Line Interface</li>
<li><a href="https://picard.musicbrainz.org/">picard</a> Picard is a cross-platform music tagger written in Python</li>
<li><a href="https://man7.org/linux/man-pages/man1/pidof.1.html">pidof</a> find the process ID of a running program</li>
<li><a href="https://man7.org/linux/man-pages/man1/pgrep.1.html">pidwait</a> wait for processes based on name and other attributes</li>
<li><a href="https://linux.die.net/man/1/pigz">pigz</a> compress or expand files</li>
<li><a href="https://linux.die.net/man/8/ping">ping</a> send ICMP ECHO_REQUEST to network hosts</li>
<li><a href="https://linux.die.net/man/1/pinky">pinky</a> lightweight finger</li>
<li><a href="https://pip.pypa.io/en/stable/">pip</a> package manager for Python packages</li>
<li><a href="https://wiki.termux.com/wiki/Package_Management">pkg</a> A tool for managing packages</li>
<li><a href="https://pkg.go.dev/golang.org/x/pkgsite/cmd/pkgsite">pkgsite</a> Pkgsite extracts and generates documentation for Go programs</li>
<li><a href="https://man7.org/linux/man-pages/man1/pgrep.1.html">pkill</a> look up for processes based on name and other attributes</li>
<li><a href="https://man7.org/linux/man-pages/man1/pmap.1.html">pmap</a> report memory map of a process</li>
<li><a href="https://pnpm.io/">pnpm</a> Fast, disk space efficient package manager</li>
<li><a href="https://podman.io/">podman</a> Simple management tool for pods, containers and images</li>
<li><a href="https://linux.die.net/man/8/poweroff">poweroff</a> poweroff the machine</li>
<li><a href="https://github.com/fenrus75/powertop">powertop</a> The Linux PowerTOP tool</li>
<li><a href="https://github.com/google/pprof">pprof</a> pprof is a tool for visualization and analysis of profiling data</li>
<li><a href="https://linux.die.net/man/1/pr">pr</a> convert text files for printing</li>
<li><a href="https://pkg.go.dev/golang.org/x/tools/present">present</a> present implements parsing and rendering of present file</li>
<li><a href="https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md">prettybat</a> Pretty-print source code and highlight it with bat</li>
<li><a href="https://github.com/denilsonsa/prettyping">prettyping</a> This script is a wrapper around the system's "ping" tool</li>
<li><a href="https://linux.die.net/man/1/printenv">printenv</a> print all or part of environment</li>
<li><a href="">ps</a> report a snapshot of the current processes</li>
<li><a href="https://linux.die.net/man/1/ptx">ptx</a> produce a permuted index of file contents</li>
<li><a href="https://www.pulumi.com/">pulumi</a> Pulumi command line</li>
<li><a href="https://linux.die.net/man/1/pwd">pwd</a> Print the full filename of the current working directory</li>
<li><a href="https://man7.org/linux/man-pages/man1/pwdx.1.html">pwdx</a> report current working directory of a process</li>
<li><a href="https://www.python.org/">python</a> an interpreted, interactive, object-oriented programming language</li>
<li><a href="https://github.com/qmk/qmk_cli">qmk</a> CLI wrapper for running QMK commands</li>
<li><a href="https://linux.die.net/man/1/qrencode">qrencode</a> Encode input data in a QR Code and save as a PNG or EPS image</li>
<li><a href="https://qutebrowser.org/">qutebrowser</a> a keyboard-driven, vim-like browser based on PyQt5</li>
<li><a href="https://github.com/ranger/ranger">ranger</a> visual file manager</li>
<li><a href="https://linux.die.net/man/1/readlink">readlink</a> print resolved symbolic links or canonical file names</li>
<li><a href="https://linux.die.net/man/8/reboot">reboot</a> reboot the machine</li>
<li><a href="https://redis.io/docs/manual/cli/">redis-cli</a> Redis command line interface</li>
<li><a href="https://restic.net/">restic</a> Backup and restore files</li>
<li><a href="https://github.com/jsonresume/resume-cli">resume-cli</a> command line tool for JSON Resume</li>
<li><a href="https://github.com/BurntSushi/ripgrep">rg</a> recursively search current directory for lines matching a pattern</li>
<li><a href="https://ranger.github.io/">rifle</a> ranger's file opener</li>
<li><a href="https://github.com/sirwart/ripsecrets">ripsecrets</a> Prevent committing secret keys into your source code</li>
<li><a href="https://linux.die.net/man/1/rm">rm</a> remove files or directories</li>
<li><a href="https://linux.die.net/man/1/rmdir">rmdir</a> remove empty directories</li>
<li><a href="https://linux.die.net/man/8/rmmod">rmmod</a> Simple program to remove a module from the Linux Kernel</li>
<li><a href="https://github.com/WayneD/rsync/">rsync</a> a fast, versatile, remote (and local) file-copying tool</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/run0.1.html">run0</a> Elevate privileges interactively</li>
<li><a href="https://github.com/rust-lang/rust-analyzer">rust-analyzer</a> LSP server for the Rust programming language</li>
<li><a href="https://doc.rust-lang.org/rustc/index.html">rustc</a> compiler for the Rust programming language</li>
<li><a href="https://doc.rust-lang.org/1.71.0/rustdoc/what-is-rustdoc.html">rustdoc</a> generate documentation for Rust projects</li>
<li><a href="https://rustup.rs/">rustup</a> installer for the systems programming language Rust</li>
<li><a href="https://github.com/TylerBrock/saw">saw</a> A fast, multipurpose tool for AWS CloudWatch Logs</li>
<li><a href="https://linux.die.net/man/1/scp">scp</a> OpenSSH secure file copy</li>
<li><a href="https://man7.org/linux/man-pages/man1/script.1.html">script</a> make typescript of terminal session</li>
<li><a href="https://man7.org/linux/man-pages/man1/scriptlive.1.html">scriptlive</a> re-run session typescripts, using timing information</li>
<li><a href="https://man7.org/linux/man-pages/man1/scriptreplay.1.html">scriptreplay</a> play back typescripts, using timing information</li>
<li><a href="https://en.wikipedia.org/wiki/Scrot">scrot</a> command line screen capture utility</li>
<li><a href="https://developer.android.com/studio/command-line/sdkmanager">sdkmanager</a> Android SDK manager</li>
<li><a href="https://www.gnu.org/software/sed/manual/sed.html">sed</a> stream editor for filtering and transforming text</li>
<li><a href="https://github.com/npm/node-semver">semver</a> A JavaScript implementation of the https://semver.org/ specification</li>
<li><a href="https://linux.die.net/man/1/seq">seq</a> print a sequence of numbers</li>
<li><a href="https://github.com/lusingander/serie">serie</a> A rich git commit graph in your terminal, like magic 📚</li>
<li><a href="https://carapace-sh.github.io/carapace-bin/environment.html">set-env</a> set environment variable</li>
<li><a href="https://linux.die.net/man/1/sftp">sftp</a> OpenSSH secure file transfer</li>
<li><a href="https://linux.die.net/man/1/sha1sum">sha1sum</a> compute and check SHA1 message digest</li>
<li><a href="https://linux.die.net/man/1/sha256sum">sha256sum</a> compute and check SHA256 message digest</li>
<li><a href="https://linux.die.net/man/1/showkey">showkey</a> examine the codes sent by the keyboard</li>
<li><a href="https://linux.die.net/man/1/shred">shred</a> overwrite a file to hide its contents, and optionally delete it</li>
<li><a href="https://linux.die.net/man/8/shutdown">shutdown</a> Shut down the system</li>
<li><a href="https://man7.org/linux/man-pages/man1/slabtop.1.html">slabtop</a> display kernel slab cache information in real time</li>
<li><a href="https://linux.die.net/man/3/sleep">sleep</a> delay for a specified amount of time</li>
<li><a href="https://maaslalani.com/slides/">slides</a> Terminal based presentation tool</li>
<li><a href="https://github.com/charmbracelet/soft-serve">soft</a> A self-hostable Git server for the command line</li>
<li><a href="https://linux.die.net/man/1/sort">sort</a> sort lines of text files</li>
<li><a href="https://www.speedtest.net/apps/cli">speedtest-cli</a> Command line interface for testing internet bandwidth using speedtest.net</li>
<li><a href="https://linux.die.net/man/1/split">split</a> split a file into pieces</li>
<li><a href="https://sqlite.org/">sqlite3</a> A command-line interface for SQLite</li>
<li><a href="https://linux.die.net/man/1/ssh-agent">ssh-agent</a> OpenSSH authentication agent</li>
<li><a href="https://linux.die.net/man/1/ssh-copy-id">ssh-copy-id</a> use locally available keys to authorise logins on a remote machine</li>
<li><a href="https://linux.die.net/man/1/ssh-keygen">ssh-keygen</a> OpenSSH authentication key utility</li>
<li><a href="https://linux.die.net/man/1/ssh">ssh</a> OpenSSH remote login client</li>
<li><a href="https://st.suckless.org/">st</a> simple terminal</li>
<li><a href="https://starship.rs/">starship</a> The cross-shell prompt for astronauts</li>
<li><a href="https://linux.die.net/man/2/stat">stat</a> display file or file system status</li>
<li><a href="https://staticcheck.io/">staticcheck</a> The advanced Go linter</li>
<li><a href="https://linux.die.net/man/1/strings">strings</a> print the sequences of printable characters in files</li>
<li><a href="https://linux.die.net/man/1/stty">stty</a> change and print terminal line settings</li>
<li><a href="https://man7.org/linux/man-pages/man1/su.1.html">su</a> run a command with substitute user and group ID</li>
<li><a href="https://linux.die.net/man/8/sudo">sudo</a> execute a command as another user</li>
<li><a href="https://linux.die.net/man/8/sudoedit">sudoedit</a> edit files as another user</li>
<li><a href="https://linux.die.net/man/8/sudoreplay">sudoreplay</a> replay sudo session logs</li>
<li><a href="https://linux.die.net/man/8/sulogin">sulogin</a> single-user login</li>
<li><a href="https://linux.die.net/man/1/sum">sum</a> checksum and count the blocks in a file</li>
<li><a href="http://supervisord.org/">supervisorctl</a> control applications run by supervisord from the cmd line</li>
<li><a href="http://supervisord.org/">supervisord</a> run a set of applications as daemons</li>
<li><a href="https://github.com/marionebl/svg-term-cli">svg-term</a> Share terminal sessions as razor-sharp animated SVG everywhere</li>
<li><a href="https://github.com/RazrFalcon/svgcleaner">svgcleaner</a> clean up your SVG files from the unnecessary data</li>
<li><a href="https://swaywm.org/">sway</a> An i3-compatible Wayland compositor</li>
<li><a href="https://github.com/swaywm/sway">swaybar</a> bar for swaywm</li>
<li><a href="https://github.com/swaywm/swaybg">swaybg</a> Background for Wayland</li>
<li><a href="https://github.com/swaywm/swayidle">swayidle</a> Idle manager for Wayland</li>
<li><a href="https://github.com/swaywm/swaylock">swaylock</a> Screen locker for Wayland</li>
<li><a href="https://github.com/swaywm/sway">swaymsg</a> Send messages to a running instance of sway over the IPC socket</li>
<li><a href="https://github.com/swaywm/sway">swaynag</a> Show a warning or error message with buttons</li>
<li><a href="https://github.com/anchore/syft">syft</a> Generate a package SBOM</li>
<li><a href="https://linux.die.net/man/8/sync">sync</a> Synchronize cached writes to persistent storage</li>
<li><a href="https://man7.org/linux/man-pages/man8/sysctl.8.html">sysctl</a> configure kernel parameters at runtime</li>
<li><a href="https://systemd.io/">systemctl</a> Query or send control commands to the system manager</li>
<li><a href="https://linux.die.net/man/1/tac">tac</a> concatenate and print files in reverse</li>
<li><a href="https://linux.die.net/man/1/tail">tail</a> output the last part of files</li>
<li><a href="https://linux.die.net/man/1/tar">tar</a> tar - an archiving utility</li>
<li><a href="https://taskfile.dev/">task</a> A task runner / simpler Make alternative written in Go</li>
<li><a href="https://gitea.com/gitea/tea">tea</a> command line tool to interact with Gitea</li>
<li><a href="https://github.com/dbrgn/tealdeer">tealdeer</a> A fast TLDR client</li>
<li><a href="https://linux.die.net/man/1/tee">tee</a> read from standard input and write to standard output and files</li>
<li><a href="https://linux.die.net/man/1/telnet">telnet</a> User interface to TELNET</li>
<li><a href="https://github.com/a-h/templ">templ</a> A language for writing HTML user interfaces in Go</li>
<li><a href="https://github.com/termux/termux-apt-repo">termux-apt-repo</a> Create a repository with deb files</li>
<li><a href="https://github.com/hashicorp/terraform-ls">terraform-ls</a> Terraform Language Server</li>
<li><a href="https://www.terraform.io/">terraform</a> infrastructure as code software tool</li>
<li><a href="https://terragrunt.gruntwork.io/">terragrunt</a> Terragrunt is a thin wrapper for Terraform</li>
<li><a href="https://github.com/mineiros-io/terramate">terramate</a> A tool for managing terraform stacks</li>
<li><a href="https://github.com/tesseract-ocr/tessdoc">tesseract</a> command-line OCR engine</li>
<li><a href="https://jonas.github.io/tig/">tig</a> text-mode interface for Git</li>
<li><a href="https://man7.org/linux/man-pages/man1/timeout.1.html">timeout</a> run a command with a time limit</li>
<li><a href="https://tinygo.org/">tinygo</a> TinyGo is a Go compiler for small places</li>
<li><a href="https://github.com/tldr-pages/tldr-python-client">tldr</a> Python command line client for tldr</li>
<li><a href="https://www.man7.org/linux/man-pages/man1/tload.1.html">tload</a> graphic representation of system load average</li>
<li><a href="https://tmate.io/">tmate</a> Instant terminal sharing</li>
<li><a href="https://github.com/tmux/tmux/wiki">tmux</a> terminal multiplexer</li>
<li><a href="https://opentofu.org/">tofu</a> The open source infrastructure as code tool</li>
<li><a href="https://github.com/toitlang/toit">toit.lsp</a> start the lsp server</li>
<li><a href="https://github.com/toitlang/toit">toit.pkg</a> The Toit package manager</li>
<li><a href="https://man7.org/linux/man-pages/man1/top.1.html">top</a> display Linux processes</li>
<li><a href="https://www.torproject.org/">tor-browser</a> Tor Browser</li>
<li><a href="https://www.torproject.org/">tor-gencert</a> Generate certs and keys for Tor directory authorities</li>
<li><a href="https://www.torproject.org/">tor-print-ed-signing-cert</a> print expiration date of ed25519 signing certificate</li>
<li><a href="https://www.torproject.org/">tor-resolve</a> resolve a hostname to an IP address via tor</li>
<li><a href="https://www.torproject.org/">torsocks</a> Shell wrapper to simplify the use of the torsocks(8) library to transparently torify an application</li>
<li><a href="https://linux.die.net/man/1/touch">touch</a> change file timestamps</li>
<li><a href="https://tox.wiki/">tox</a> automation project</li>
<li><a href="https://linux.die.net/man/1/tr">tr</a> translate or delete characters</li>
<li><a href="https://traefik.io/">traefik</a> Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease</li>
<li><a href="https://transmissionbt.com/">transmission-cli</a> A fast and easy BitTorrent client</li>
<li><a href="https://transmissionbt.com/">transmission-create</a> A command-line utility to create .torrent files</li>
<li><a href="https://transmissionbt.com/">transmission-daemon</a> A daemon-based BitTorrent client</li>
<li><a href="https://transmissionbt.com/">transmission-edit</a> A command-line utility to modify .torrent files' announce URLs</li>
<li><a href="https://transmissionbt.com/">transmission-remote</a> A remote control utility for transmission-daemon and transmission</li>
<li><a href="https://transmissionbt.com/">transmission-show</a> A command-line utility to show .torrent file metadata</li>
<li><a href="https://linux.die.net/man/1/tree">tree</a> list contents of directories in a tree-like format</li>
<li><a href="https://linux.die.net/man/1/truncate">truncate</a> Shrink or extend the size of each FILE to the specified size</li>
<li><a href="https://linux.die.net/man/1/ts">ts</a> timestamp input</li>
<li><a href="https://www.typescriptlang.org/docs/handbook/compiler-options.html">tsc</a> The TypeScript Compiler</li>
<li><a href="https://github.com/gravitational/teleport">tsh</a> Teleport Command Line Client</li>
<li><a href="https://tshark.dev/">tshark</a> Dump and analyze network traffic</li>
<li><a href="https://linux.die.net/man/1/tsort">tsort</a> perform topological sort</li>
<li><a href="https://linux.die.net/man/1/tty">tty</a> print the file name of the terminal connected to standard input</li>
<li><a href="https://github.com/tsl0922/ttyd">ttyd</a> ttyd is a tool for sharing terminal over the web</li>
<li><a href="https://turbo.build/repo">turbo</a> The build system that makes ship happen</li>
<li><a href="https://launchpad.net/ufw">ufw</a> program for managing a netfilter firewall</li>
<li><a href="https://linux.die.net/man/8/umount">umount</a> Unmount filesystems</li>
<li><a href="https://linux.die.net/man/1/uname">uname</a> print system information</li>
<li><a href="https://github.com/google/brotli">unbrotli</a> compress or decompress files</li>
<li><a href="https://linux.die.net/man/1/unexpand">unexpand</a> convert spaces to tabs</li>
<li><a href="https://linux.die.net/man/1/uniq">uniq</a> report or omit repeated lines</li>
<li><a href="https://linux.die.net/man/2/unlink">unlink</a> call the unlink function to remove the specified file</li>
<li><a href="https://linux.die.net/man/1/xz">unlzma</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://linux.die.net/man/1/pigz">unpigz</a> compress or expand files</li>
<li><a href="https://carapace-sh.github.io/carapace-bin/environment.html">unset-env</a> unset environment variable</li>
<li><a href="https://linux.die.net/man/1/xz">unxz</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://linux.die.net/man/1/unzip">unzip</a> list, test and extract compressed files in a ZIP archive</li>
<li><a href="https://upower.freedesktop.org/">upower</a> UPower command line tool</li>
<li><a href="https://man7.org/linux/man-pages/man1/uptime.1.html">uptime</a> Tell how long the system has been running</li>
<li><a href="https://upx.github.io/">upx</a> compress or expand executable files</li>
<li><a href="https://linux.die.net/man/8/useradd">useradd</a> create a new user or update default new user information</li>
<li><a href="https://linux.die.net/man/8/userdel">userdel</a> delete a user account and related files</li>
<li><a href="https://linux.die.net/man/8/usermod">usermod</a> modify a user account</li>
<li><a href="https://linux.die.net/man/1/users">users</a> print the user names of users currently logged in to the current host</li>
<li><a href="https://www.vagrantup.com/">vagrant</a> tool for building and managing virtual machine environments</li>
<li><a href="https://www.vaultproject.io/">vault</a> A tool for secrets management</li>
<li><a href="https://linux.die.net/man/1/vdir">vdir</a> list directory contents</li>
<li><a href="https://vercel.com/">vercel</a> Develop. Preview. Ship.</li>
<li><a href="https://github.com/charmbracelet/vhs">vhs</a> Run a given tape file and generates its outputs.</li>
<li><a href="https://en.wikipedia.org/wiki/Vi">vi</a> screen oriented (visual) display editor based on ex</li>
<li><a href="https://siyanpanayotov.com/project/viewnior">viewnior</a> simple, fast and elegant image viewer</li>
<li><a href="https://linux.die.net/man/1/vi">vim</a> Vi IMproved, a programmer's text editor</li>
<li><a href="https://linux.die.net/man/8/visudo">visudo</a> safely edit the sudoers file</li>
<li><a href="https://github.com/atanunq/viu">viu</a> View images right from the terminal</li>
<li><a href="https://github.com/sharkdp/vivid">vivid</a> LS_COLORS manager with multiple themes</li>
<li><a href="https://www.videolan.org/vlc/">vlc</a> the VLC media player</li>
<li><a href="https://man7.org/linux/man-pages/man8/vmstat.8.html">vmstat</a> Report virtual memory statistics</li>
<li><a href="https://volta.sh/">volta</a> The JavaScript Launcher</li>
<li><a href="https://man7.org/linux/man-pages/man1/w.1.html">w</a> Show who is logged on and what they are doing</li>
<li><a href="https://man7.org/linux/man-pages/man1/watch.1.html">watch</a> execute a program periodically, showing output fullscreen</li>
<li><a href="https://github.com/watchexec/watchexec">watchexec</a> Execute commands when watched files change</li>
<li><a href="https://www.gnupg.org/documentation/manuals/gnupg/watchgnupg.html">watchgnupg</a> Read and print logs from a socket</li>
<li><a href="https://www.waypointproject.io/">waypoint</a> Easy application deployment for Kubernetes and Amazon ECS</li>
<li><a href="https://linux.die.net/man/1/wc">wc</a> print newline, word, and byte counts for each file</li>
<li><a href="http://github.com/wez/wezterm">wezterm</a> Wez's Terminal Emulator</li>
<li><a href="https://www.gnu.org/software/wget/">wget</a> a non-interactive network retriever</li>
<li><a href="https://linux.die.net/man/1/whereis">whereis</a> Locate the binary, source, and manual-page files for a command</li>
<li><a href="https://linux.die.net/man/1/which">which</a> Write the full path of COMMAND(s) to standard output</li>
<li><a href="https://linux.die.net/man/1/who">who</a> show who is logged on</li>
<li><a href="https://linux.die.net/man/1/whoami">whoami</a> print effective userid</li>
<li><a href="https://www.winehq.org/">wine</a> run Windows programs on Unix</li>
<li><a href="https://wiki.winehq.org/Wineboot">wineboot</a> perform Wine initialization, startup, and shutdown task</li>
<li><a href="https://wiki.winehq.org/Winepath">winepath</a> Tool to convert Unix paths to/from Win32 paths</li>
<li><a href="https://wiki.winehq.org/Wineserver">wineserver</a> the Wine server</li>
<li><a href="https://wiki.winehq.org/Winetricks">winetricks</a> manage virtual Windows environments using Wine</li>
<li><a href="https://github.com/google/wire">wire</a> Compile-time Dependency Injection for Go</li>
<li><a href="https://www.wireshark.org/">wireshark</a> Interactively dump and analyze network traffic</li>
<li><a href="https://github.com/charmbracelet/soft-serve">wishlist</a> The SSH Directory</li>
<li><a href="https://github.com/Ferdi265/wl-mirror">wl-mirror</a> a simple Wayland output mirror client</li>
<li><a href="https://github.com/WoeUSB/WoeUSB-ng">woeusb</a> A Linux program to create a Windows USB stick installer</li>
<li><a href="https://linux.die.net/man/1/xargs">xargs</a> build and execute command lines from standard input</li>
<li><a href="https://linux.die.net/man/1/xbacklight">xbacklight</a> adjust backlight brightness using RandR extension</li>
<li><a href="https://github.com/astrand/xclip/">xclip</a> command line interface to X selections</li>
<li><a href="https://github.com/jordansissel/xdotool">xdotool</a> command-line X11 automation tool</li>
<li><a href="https://xon.sh/">xonsh</a> Python-powered shell</li>
<li><a href="https://linux.die.net/man/1/xz">xz</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://linux.die.net/man/1/xz">xzcat</a> Compress or decompress .xz and .lzma files</li>
<li><a href="https://yarnpkg.com/">yarn</a> Yarn is a package manager that doubles down as project manager</li>
<li><a href="https://github.com/Jguer/yay">yay</a> An AUR Helper written in Go</li>
<li><a href="https://linux.die.net/man/1/yes">yes</a> output a string repeatedly until killed</li>
<li><a href="https://github.com/sclevine/yj">yj</a> Convert between YAML, TOML, JSON, and HCL</li>
<li><a href="https://github.com/ytdl-org/youtube-dl">youtube-dl</a> download videos from youtube.com or other video platforms</li>
<li><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a> A youtube-dl fork with additional features and fixes</li>
<li><a href="https://pwmt.org/projects/zathura/">zathura</a> a document viewer</li>
<li><a href="https://linux.die.net/man/1/zcat">zcat</a> compress or expand files</li>
<li><a href="https://linux.die.net/man/1/zip">zip</a> package and compress (archive) files</li>
<li><a href="https://github.com/ajeetdsouza/zoxide">zoxide</a> A smarter cd command for your terminal</li>
</ul>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="setup/environment.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="style.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="setup/environment.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="style.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

640
css/chrome.css Normal file
View File

@ -0,0 +1,640 @@
/* CSS for UI elements (a.k.a. chrome) */
html {
scrollbar-color: var(--scrollbar) var(--bg);
}
#searchresults a,
.content a:link,
a:visited,
a > .hljs {
color: var(--links);
}
/*
body-container is necessary because mobile browsers don't seem to like
overflow-x on the body tag when there is a <meta name="viewport"> tag.
*/
#body-container {
/*
This is used when the sidebar pushes the body content off the side of
the screen on small screens. Without it, dragging on mobile Safari
will want to reposition the viewport in a weird way.
*/
overflow-x: clip;
}
/* Menu Bar */
#menu-bar,
#menu-bar-hover-placeholder {
z-index: 101;
margin: auto calc(0px - var(--page-padding));
}
#menu-bar {
position: relative;
display: flex;
flex-wrap: wrap;
background-color: var(--bg);
border-block-end-color: var(--bg);
border-block-end-width: 1px;
border-block-end-style: solid;
}
#menu-bar.sticky,
#menu-bar-hover-placeholder:hover + #menu-bar,
#menu-bar:hover,
html.sidebar-visible #menu-bar {
position: -webkit-sticky;
position: sticky;
top: 0 !important;
}
#menu-bar-hover-placeholder {
position: sticky;
position: -webkit-sticky;
top: 0;
height: var(--menu-bar-height);
}
#menu-bar.bordered {
border-block-end-color: var(--table-border-color);
}
#menu-bar i, #menu-bar .icon-button {
position: relative;
padding: 0 8px;
z-index: 10;
line-height: var(--menu-bar-height);
cursor: pointer;
transition: color 0.5s;
}
@media only screen and (max-width: 420px) {
#menu-bar i, #menu-bar .icon-button {
padding: 0 5px;
}
}
.icon-button {
border: none;
background: none;
padding: 0;
color: inherit;
}
.icon-button i {
margin: 0;
}
.right-buttons {
margin: 0 15px;
}
.right-buttons a {
text-decoration: none;
}
.left-buttons {
display: flex;
margin: 0 5px;
}
html:not(.js) .left-buttons button {
display: none;
}
.menu-title {
display: inline-block;
font-weight: 200;
font-size: 2.4rem;
line-height: var(--menu-bar-height);
text-align: center;
margin: 0;
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.menu-title {
cursor: pointer;
}
.menu-bar,
.menu-bar:visited,
.nav-chapters,
.nav-chapters:visited,
.mobile-nav-chapters,
.mobile-nav-chapters:visited,
.menu-bar .icon-button,
.menu-bar a i {
color: var(--icons);
}
.menu-bar i:hover,
.menu-bar .icon-button:hover,
.nav-chapters:hover,
.mobile-nav-chapters i:hover {
color: var(--icons-hover);
}
/* Nav Icons */
.nav-chapters {
font-size: 2.5em;
text-align: center;
text-decoration: none;
position: fixed;
top: 0;
bottom: 0;
margin: 0;
max-width: 150px;
min-width: 90px;
display: flex;
justify-content: center;
align-content: center;
flex-direction: column;
transition: color 0.5s, background-color 0.5s;
}
.nav-chapters:hover {
text-decoration: none;
background-color: var(--theme-hover);
transition: background-color 0.15s, color 0.15s;
}
.nav-wrapper {
margin-block-start: 50px;
display: none;
}
.mobile-nav-chapters {
font-size: 2.5em;
text-align: center;
text-decoration: none;
width: 90px;
border-radius: 5px;
background-color: var(--sidebar-bg);
}
/* Only Firefox supports flow-relative values */
.previous { float: left; }
[dir=rtl] .previous { float: right; }
/* Only Firefox supports flow-relative values */
.next {
float: right;
right: var(--page-padding);
}
[dir=rtl] .next {
float: left;
right: unset;
left: var(--page-padding);
}
/* Use the correct buttons for RTL layouts*/
[dir=rtl] .previous i.fa-angle-left:before {content:"\f105";}
[dir=rtl] .next i.fa-angle-right:before { content:"\f104"; }
@media only screen and (max-width: 1080px) {
.nav-wide-wrapper { display: none; }
.nav-wrapper { display: block; }
}
/* sidebar-visible */
@media only screen and (max-width: 1380px) {
#sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wide-wrapper { display: none; }
#sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wrapper { display: block; }
}
/* Inline code */
:not(pre) > .hljs {
display: inline;
padding: 0.1em 0.3em;
border-radius: 3px;
}
:not(pre):not(a) > .hljs {
color: var(--inline-code-color);
overflow-x: initial;
}
a:hover > .hljs {
text-decoration: underline;
}
pre {
position: relative;
}
pre > .buttons {
position: absolute;
z-index: 100;
right: 0px;
top: 2px;
margin: 0px;
padding: 2px 0px;
color: var(--sidebar-fg);
cursor: pointer;
visibility: hidden;
opacity: 0;
transition: visibility 0.1s linear, opacity 0.1s linear;
}
pre:hover > .buttons {
visibility: visible;
opacity: 1
}
pre > .buttons :hover {
color: var(--sidebar-active);
border-color: var(--icons-hover);
background-color: var(--theme-hover);
}
pre > .buttons i {
margin-inline-start: 8px;
}
pre > .buttons button {
cursor: inherit;
margin: 0px 5px;
padding: 4px 4px 3px 5px;
font-size: 23px;
border-style: solid;
border-width: 1px;
border-radius: 4px;
border-color: var(--icons);
background-color: var(--theme-popup-bg);
transition: 100ms;
transition-property: color,border-color,background-color;
color: var(--icons);
}
pre > .buttons button.clip-button {
padding: 2px 4px 0px 6px;
}
pre > .buttons button.clip-button::before {
/* clipboard image from octicons (https://github.com/primer/octicons/tree/v2.0.0) MIT license
*/
content: url('data:image/svg+xml,<svg width="21" height="20" viewBox="0 0 24 25" \
xmlns="http://www.w3.org/2000/svg" aria-label="Copy to clipboard">\
<path d="M18 20h2v3c0 1-1 2-2 2H2c-.998 0-2-1-2-2V5c0-.911.755-1.667 1.667-1.667h5A3.323 3.323 0 \
0110 0a3.323 3.323 0 013.333 3.333h5C19.245 3.333 20 4.09 20 5v8.333h-2V9H2v14h16v-3zM3 \
7h14c0-.911-.793-1.667-1.75-1.667H13.5c-.957 0-1.75-.755-1.75-1.666C11.75 2.755 10.957 2 10 \
2s-1.75.755-1.75 1.667c0 .911-.793 1.666-1.75 1.666H4.75C3.793 5.333 3 6.09 3 7z"/>\
<path d="M4 19h6v2H4zM12 11H4v2h8zM4 17h4v-2H4zM15 15v-3l-4.5 4.5L15 21v-3l8.027-.032L23 15z"/>\
</svg>');
filter: var(--copy-button-filter);
}
pre > .buttons button.clip-button:hover::before {
filter: var(--copy-button-filter-hover);
}
@media (pointer: coarse) {
pre > .buttons button {
/* On mobile, make it easier to tap buttons. */
padding: 0.3rem 1rem;
}
.sidebar-resize-indicator {
/* Hide resize indicator on devices with limited accuracy */
display: none;
}
}
pre > code {
display: block;
padding: 1rem;
}
/* FIXME: ACE editors overlap their buttons because ACE does absolute
positioning within the code block which breaks padding. The only solution I
can think of is to move the padding to the outer pre tag (or insert a div
wrapper), but that would require fixing a whole bunch of CSS rules.
*/
.hljs.ace_editor {
padding: 0rem 0rem;
}
pre > .result {
margin-block-start: 10px;
}
/* Search */
#searchresults a {
text-decoration: none;
}
mark {
border-radius: 2px;
padding-block-start: 0;
padding-block-end: 1px;
padding-inline-start: 3px;
padding-inline-end: 3px;
margin-block-start: 0;
margin-block-end: -1px;
margin-inline-start: -3px;
margin-inline-end: -3px;
background-color: var(--search-mark-bg);
transition: background-color 300ms linear;
cursor: pointer;
}
mark.fade-out {
background-color: rgba(0,0,0,0) !important;
cursor: auto;
}
.searchbar-outer {
margin-inline-start: auto;
margin-inline-end: auto;
max-width: var(--content-max-width);
}
#searchbar {
width: 100%;
margin-block-start: 5px;
margin-block-end: 0;
margin-inline-start: auto;
margin-inline-end: auto;
padding: 10px 16px;
transition: box-shadow 300ms ease-in-out;
border: 1px solid var(--searchbar-border-color);
border-radius: 3px;
background-color: var(--searchbar-bg);
color: var(--searchbar-fg);
}
#searchbar:focus,
#searchbar.active {
box-shadow: 0 0 3px var(--searchbar-shadow-color);
}
.searchresults-header {
font-weight: bold;
font-size: 1em;
padding-block-start: 18px;
padding-block-end: 0;
padding-inline-start: 5px;
padding-inline-end: 0;
color: var(--searchresults-header-fg);
}
.searchresults-outer {
margin-inline-start: auto;
margin-inline-end: auto;
max-width: var(--content-max-width);
border-block-end: 1px dashed var(--searchresults-border-color);
}
ul#searchresults {
list-style: none;
padding-inline-start: 20px;
}
ul#searchresults li {
margin: 10px 0px;
padding: 2px;
border-radius: 2px;
}
ul#searchresults li.focus {
background-color: var(--searchresults-li-bg);
}
ul#searchresults span.teaser {
display: block;
clear: both;
margin-block-start: 5px;
margin-block-end: 0;
margin-inline-start: 20px;
margin-inline-end: 0;
font-size: 0.8em;
}
ul#searchresults span.teaser em {
font-weight: bold;
font-style: normal;
}
/* Sidebar */
.sidebar {
position: fixed;
left: 0;
top: 0;
bottom: 0;
width: var(--sidebar-width);
font-size: 0.875em;
box-sizing: border-box;
-webkit-overflow-scrolling: touch;
overscroll-behavior-y: contain;
background-color: var(--sidebar-bg);
color: var(--sidebar-fg);
}
.sidebar-iframe-inner {
background-color: var(--sidebar-bg);
color: var(--sidebar-fg);
padding: 10px 10px;
margin: 0;
font-size: 1.4rem;
}
.sidebar-iframe-outer {
border: none;
height: 100%;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
[dir=rtl] .sidebar { left: unset; right: 0; }
.sidebar-resizing {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
html:not(.sidebar-resizing) .sidebar {
transition: transform 0.3s; /* Animation: slide away */
}
.sidebar code {
line-height: 2em;
}
.sidebar .sidebar-scrollbox {
overflow-y: auto;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding: 10px 10px;
}
.sidebar .sidebar-resize-handle {
position: absolute;
cursor: col-resize;
width: 0;
right: calc(var(--sidebar-resize-indicator-width) * -1);
top: 0;
bottom: 0;
display: flex;
align-items: center;
}
.sidebar-resize-handle .sidebar-resize-indicator {
width: 100%;
height: 12px;
background-color: var(--icons);
margin-inline-start: var(--sidebar-resize-indicator-space);
}
[dir=rtl] .sidebar .sidebar-resize-handle {
left: calc(var(--sidebar-resize-indicator-width) * -1);
right: unset;
}
.js .sidebar .sidebar-resize-handle {
cursor: col-resize;
width: calc(var(--sidebar-resize-indicator-width) - var(--sidebar-resize-indicator-space));
}
/* sidebar-hidden */
#sidebar-toggle-anchor:not(:checked) ~ .sidebar {
transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width)));
z-index: -1;
}
[dir=rtl] #sidebar-toggle-anchor:not(:checked) ~ .sidebar {
transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width)));
}
.sidebar::-webkit-scrollbar {
background: var(--sidebar-bg);
}
.sidebar::-webkit-scrollbar-thumb {
background: var(--scrollbar);
}
/* sidebar-visible */
#sidebar-toggle-anchor:checked ~ .page-wrapper {
transform: translateX(calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width)));
}
[dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper {
transform: translateX(calc(0px - var(--sidebar-width) - var(--sidebar-resize-indicator-width)));
}
@media only screen and (min-width: 620px) {
#sidebar-toggle-anchor:checked ~ .page-wrapper {
transform: none;
margin-inline-start: calc(var(--sidebar-width) + var(--sidebar-resize-indicator-width));
}
[dir=rtl] #sidebar-toggle-anchor:checked ~ .page-wrapper {
transform: none;
}
}
.chapter {
list-style: none outside none;
padding-inline-start: 0;
line-height: 2.2em;
}
.chapter ol {
width: 100%;
}
.chapter li {
display: flex;
color: var(--sidebar-non-existant);
}
.chapter li a {
display: block;
padding: 0;
text-decoration: none;
color: var(--sidebar-fg);
}
.chapter li a:hover {
color: var(--sidebar-active);
}
.chapter li a.active {
color: var(--sidebar-active);
}
.chapter li > a.toggle {
cursor: pointer;
display: block;
margin-inline-start: auto;
padding: 0 10px;
user-select: none;
opacity: 0.68;
}
.chapter li > a.toggle div {
transition: transform 0.5s;
}
/* collapse the section */
.chapter li:not(.expanded) + li > ol {
display: none;
}
.chapter li.chapter-item {
line-height: 1.5em;
margin-block-start: 0.6em;
}
.chapter li.expanded > a.toggle div {
transform: rotate(90deg);
}
.spacer {
width: 100%;
height: 3px;
margin: 5px 0px;
}
.chapter .spacer {
background-color: var(--sidebar-spacer);
}
@media (-moz-touch-enabled: 1), (pointer: coarse) {
.chapter li a { padding: 5px 0; }
.spacer { margin: 10px 0; }
}
.section {
list-style: none outside none;
padding-inline-start: 20px;
line-height: 1.9em;
}
/* Theme Menu Popup */
.theme-popup {
position: absolute;
left: 10px;
top: var(--menu-bar-height);
z-index: 1000;
border-radius: 4px;
font-size: 0.7em;
color: var(--fg);
background: var(--theme-popup-bg);
border: 1px solid var(--theme-popup-border);
margin: 0;
padding: 0;
list-style: none;
display: none;
/* Don't let the children's background extend past the rounded corners. */
overflow: hidden;
}
[dir=rtl] .theme-popup { left: unset; right: 10px; }
.theme-popup .default {
color: var(--icons);
}
.theme-popup .theme {
width: 100%;
border: 0;
margin: 0;
padding: 2px 20px;
line-height: 25px;
white-space: nowrap;
text-align: start;
cursor: pointer;
color: inherit;
background: inherit;
font-size: inherit;
}
.theme-popup .theme:hover {
background-color: var(--theme-hover);
}
.theme-selected::before {
display: inline-block;
content: "✓";
margin-inline-start: -14px;
width: 14px;
}

242
css/general.css Normal file
View File

@ -0,0 +1,242 @@
/* Base styles and content styles */
:root {
/* Browser default font-size is 16px, this way 1 rem = 10px */
font-size: 62.5%;
color-scheme: var(--color-scheme);
}
html {
font-family: "Open Sans", sans-serif;
color: var(--fg);
background-color: var(--bg);
text-size-adjust: none;
-webkit-text-size-adjust: none;
}
body {
margin: 0;
font-size: 1.6rem;
overflow-x: hidden;
}
code {
font-family: var(--mono-font) !important;
font-size: var(--code-font-size);
direction: ltr !important;
}
/* make long words/inline code not x overflow */
main {
overflow-wrap: break-word;
}
/* make wide tables scroll if they overflow */
.table-wrapper {
overflow-x: auto;
}
/* Don't change font size in headers. */
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
font-size: unset;
}
.left { float: left; }
.right { float: right; }
.boring { opacity: 0.6; }
.hide-boring .boring { display: none; }
.hidden { display: none !important; }
h2, h3 { margin-block-start: 2.5em; }
h4, h5 { margin-block-start: 2em; }
.header + .header h3,
.header + .header h4,
.header + .header h5 {
margin-block-start: 1em;
}
h1:target::before,
h2:target::before,
h3:target::before,
h4:target::before,
h5:target::before,
h6:target::before {
display: inline-block;
content: "»";
margin-inline-start: -30px;
width: 30px;
}
/* This is broken on Safari as of version 14, but is fixed
in Safari Technology Preview 117 which I think will be Safari 14.2.
https://bugs.webkit.org/show_bug.cgi?id=218076
*/
:target {
/* Safari does not support logical properties */
scroll-margin-top: calc(var(--menu-bar-height) + 0.5em);
}
.page {
outline: 0;
padding: 0 var(--page-padding);
margin-block-start: calc(0px - var(--menu-bar-height)); /* Compensate for the #menu-bar-hover-placeholder */
}
.page-wrapper {
box-sizing: border-box;
background-color: var(--bg);
}
.no-js .page-wrapper,
.js:not(.sidebar-resizing) .page-wrapper {
transition: margin-left 0.3s ease, transform 0.3s ease; /* Animation: slide away */
}
[dir=rtl] .js:not(.sidebar-resizing) .page-wrapper {
transition: margin-right 0.3s ease, transform 0.3s ease; /* Animation: slide away */
}
.content {
overflow-y: auto;
padding: 0 5px 50px 5px;
}
.content main {
margin-inline-start: auto;
margin-inline-end: auto;
max-width: var(--content-max-width);
}
.content p { line-height: 1.45em; }
.content ol { line-height: 1.45em; }
.content ul { line-height: 1.45em; }
.content a { text-decoration: none; }
.content a:hover { text-decoration: underline; }
.content img, .content video { max-width: 100%; }
.content .header:link,
.content .header:visited {
color: var(--fg);
}
.content .header:link,
.content .header:visited:hover {
text-decoration: none;
}
table {
margin: 0 auto;
border-collapse: collapse;
}
table td {
padding: 3px 20px;
border: 1px var(--table-border-color) solid;
}
table thead {
background: var(--table-header-bg);
}
table thead td {
font-weight: 700;
border: none;
}
table thead th {
padding: 3px 20px;
}
table thead tr {
border: 1px var(--table-header-bg) solid;
}
/* Alternate background colors for rows */
table tbody tr:nth-child(2n) {
background: var(--table-alternate-bg);
}
blockquote {
margin: 20px 0;
padding: 0 20px;
color: var(--fg);
background-color: var(--quote-bg);
border-block-start: .1em solid var(--quote-border);
border-block-end: .1em solid var(--quote-border);
}
.warning {
margin: 20px;
padding: 0 20px;
border-inline-start: 2px solid var(--warning-border);
}
.warning:before {
position: absolute;
width: 3rem;
height: 3rem;
margin-inline-start: calc(-1.5rem - 21px);
content: "ⓘ";
text-align: center;
background-color: var(--bg);
color: var(--warning-border);
font-weight: bold;
font-size: 2rem;
}
blockquote .warning:before {
background-color: var(--quote-bg);
}
kbd {
background-color: var(--table-border-color);
border-radius: 4px;
border: solid 1px var(--theme-popup-border);
box-shadow: inset 0 -1px 0 var(--theme-hover);
display: inline-block;
font-size: var(--code-font-size);
font-family: var(--mono-font);
line-height: 10px;
padding: 4px 5px;
vertical-align: middle;
}
sup {
/* Set the line-height for superscript and footnote references so that there
isn't an awkward space appearing above lines that contain the footnote.
See https://github.com/rust-lang/mdBook/pull/2443#discussion_r1813773583
for an explanation.
*/
line-height: 0;
}
:not(.footnote-definition) + .footnote-definition,
.footnote-definition + :not(.footnote-definition) {
margin-block-start: 2em;
}
.footnote-definition {
font-size: 0.9em;
margin: 0.5em 0;
}
.footnote-definition p {
display: inline;
}
.tooltiptext {
position: absolute;
visibility: hidden;
color: #fff;
background-color: #333;
transform: translateX(-50%); /* Center by moving tooltip 50% of its width left */
left: -8px; /* Half of the width of the icon */
top: -35px;
font-size: 0.8em;
text-align: center;
border-radius: 6px;
padding: 5px 8px;
margin: 5px;
z-index: 1000;
}
.tooltipped .tooltiptext {
visibility: visible;
}
.chapter li.part-title {
color: var(--sidebar-fg);
margin: 5px 0px;
font-weight: bold;
}
.result-no-output {
font-style: italic;
}

50
css/print.css Normal file
View File

@ -0,0 +1,50 @@
#sidebar,
#menu-bar,
.nav-chapters,
.mobile-nav-chapters {
display: none;
}
#page-wrapper.page-wrapper {
transform: none !important;
margin-inline-start: 0px;
overflow-y: initial;
}
#content {
max-width: none;
margin: 0;
padding: 0;
}
.page {
overflow-y: initial;
}
code {
direction: ltr !important;
}
pre > .buttons {
z-index: 2;
}
a, a:visited, a:active, a:hover {
color: #4183c4;
text-decoration: none;
}
h1, h2, h3, h4, h5, h6 {
page-break-inside: avoid;
page-break-after: avoid;
}
pre, code {
page-break-inside: avoid;
white-space: pre-wrap;
}
.fa {
display: none !important;
}

309
css/variables.css Normal file
View File

@ -0,0 +1,309 @@
/* Globals */
:root {
--sidebar-width: 300px;
--sidebar-resize-indicator-width: 8px;
--sidebar-resize-indicator-space: 2px;
--page-padding: 15px;
--content-max-width: 750px;
--menu-bar-height: 50px;
--mono-font: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace, monospace;
--code-font-size: 0.875em /* please adjust the ace font size accordingly in editor.js */
}
/* Themes */
.ayu {
--bg: hsl(210, 25%, 8%);
--fg: #c5c5c5;
--sidebar-bg: #14191f;
--sidebar-fg: #c8c9db;
--sidebar-non-existant: #5c6773;
--sidebar-active: #ffb454;
--sidebar-spacer: #2d334f;
--scrollbar: var(--sidebar-fg);
--icons: #737480;
--icons-hover: #b7b9cc;
--links: #0096cf;
--inline-code-color: #ffb454;
--theme-popup-bg: #14191f;
--theme-popup-border: #5c6773;
--theme-hover: #191f26;
--quote-bg: hsl(226, 15%, 17%);
--quote-border: hsl(226, 15%, 22%);
--warning-border: #ff8e00;
--table-border-color: hsl(210, 25%, 13%);
--table-header-bg: hsl(210, 25%, 28%);
--table-alternate-bg: hsl(210, 25%, 11%);
--searchbar-border-color: #848484;
--searchbar-bg: #424242;
--searchbar-fg: #fff;
--searchbar-shadow-color: #d4c89f;
--searchresults-header-fg: #666;
--searchresults-border-color: #888;
--searchresults-li-bg: #252932;
--search-mark-bg: #e3b171;
--color-scheme: dark;
/* Same as `--icons` */
--copy-button-filter: invert(45%) sepia(6%) saturate(621%) hue-rotate(198deg) brightness(99%) contrast(85%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(68%) sepia(55%) saturate(531%) hue-rotate(341deg) brightness(104%) contrast(101%);
}
.coal {
--bg: hsl(200, 7%, 8%);
--fg: #98a3ad;
--sidebar-bg: #292c2f;
--sidebar-fg: #a1adb8;
--sidebar-non-existant: #505254;
--sidebar-active: #3473ad;
--sidebar-spacer: #393939;
--scrollbar: var(--sidebar-fg);
--icons: #43484d;
--icons-hover: #b3c0cc;
--links: #2b79a2;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #141617;
--theme-popup-border: #43484d;
--theme-hover: #1f2124;
--quote-bg: hsl(234, 21%, 18%);
--quote-border: hsl(234, 21%, 23%);
--warning-border: #ff8e00;
--table-border-color: hsl(200, 7%, 13%);
--table-header-bg: hsl(200, 7%, 28%);
--table-alternate-bg: hsl(200, 7%, 11%);
--searchbar-border-color: #aaa;
--searchbar-bg: #b7b7b7;
--searchbar-fg: #000;
--searchbar-shadow-color: #aaa;
--searchresults-header-fg: #666;
--searchresults-border-color: #98a3ad;
--searchresults-li-bg: #2b2b2f;
--search-mark-bg: #355c7d;
--color-scheme: dark;
/* Same as `--icons` */
--copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);
}
.light, html:not(.js) {
--bg: hsl(0, 0%, 100%);
--fg: hsl(0, 0%, 0%);
--sidebar-bg: #fafafa;
--sidebar-fg: hsl(0, 0%, 0%);
--sidebar-non-existant: #aaaaaa;
--sidebar-active: #1f1fff;
--sidebar-spacer: #f4f4f4;
--scrollbar: #8F8F8F;
--icons: #747474;
--icons-hover: #000000;
--links: #20609f;
--inline-code-color: #301900;
--theme-popup-bg: #fafafa;
--theme-popup-border: #cccccc;
--theme-hover: #e6e6e6;
--quote-bg: hsl(197, 37%, 96%);
--quote-border: hsl(197, 37%, 91%);
--warning-border: #ff8e00;
--table-border-color: hsl(0, 0%, 95%);
--table-header-bg: hsl(0, 0%, 80%);
--table-alternate-bg: hsl(0, 0%, 97%);
--searchbar-border-color: #aaa;
--searchbar-bg: #fafafa;
--searchbar-fg: #000;
--searchbar-shadow-color: #aaa;
--searchresults-header-fg: #666;
--searchresults-border-color: #888;
--searchresults-li-bg: #e4f2fe;
--search-mark-bg: #a2cff5;
--color-scheme: light;
/* Same as `--icons` */
--copy-button-filter: invert(45.49%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(14%) sepia(93%) saturate(4250%) hue-rotate(243deg) brightness(99%) contrast(130%);
}
.navy {
--bg: hsl(226, 23%, 11%);
--fg: #bcbdd0;
--sidebar-bg: #282d3f;
--sidebar-fg: #c8c9db;
--sidebar-non-existant: #505274;
--sidebar-active: #2b79a2;
--sidebar-spacer: #2d334f;
--scrollbar: var(--sidebar-fg);
--icons: #737480;
--icons-hover: #b7b9cc;
--links: #2b79a2;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #161923;
--theme-popup-border: #737480;
--theme-hover: #282e40;
--quote-bg: hsl(226, 15%, 17%);
--quote-border: hsl(226, 15%, 22%);
--warning-border: #ff8e00;
--table-border-color: hsl(226, 23%, 16%);
--table-header-bg: hsl(226, 23%, 31%);
--table-alternate-bg: hsl(226, 23%, 14%);
--searchbar-border-color: #aaa;
--searchbar-bg: #aeaec6;
--searchbar-fg: #000;
--searchbar-shadow-color: #aaa;
--searchresults-header-fg: #5f5f71;
--searchresults-border-color: #5c5c68;
--searchresults-li-bg: #242430;
--search-mark-bg: #a2cff5;
--color-scheme: dark;
/* Same as `--icons` */
--copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(46%) sepia(20%) saturate(1537%) hue-rotate(156deg) brightness(85%) contrast(90%);
}
.rust {
--bg: hsl(60, 9%, 87%);
--fg: #262625;
--sidebar-bg: #3b2e2a;
--sidebar-fg: #c8c9db;
--sidebar-non-existant: #505254;
--sidebar-active: #e69f67;
--sidebar-spacer: #45373a;
--scrollbar: var(--sidebar-fg);
--icons: #737480;
--icons-hover: #262625;
--links: #2b79a2;
--inline-code-color: #6e6b5e;
--theme-popup-bg: #e1e1db;
--theme-popup-border: #b38f6b;
--theme-hover: #99908a;
--quote-bg: hsl(60, 5%, 75%);
--quote-border: hsl(60, 5%, 70%);
--warning-border: #ff8e00;
--table-border-color: hsl(60, 9%, 82%);
--table-header-bg: #b3a497;
--table-alternate-bg: hsl(60, 9%, 84%);
--searchbar-border-color: #aaa;
--searchbar-bg: #fafafa;
--searchbar-fg: #000;
--searchbar-shadow-color: #aaa;
--searchresults-header-fg: #666;
--searchresults-border-color: #888;
--searchresults-li-bg: #dec2a2;
--search-mark-bg: #e69f67;
/* Same as `--icons` */
--copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(77%) sepia(16%) saturate(1798%) hue-rotate(328deg) brightness(98%) contrast(83%);
}
@media (prefers-color-scheme: dark) {
html:not(.js) {
--bg: hsl(200, 7%, 8%);
--fg: #98a3ad;
--sidebar-bg: #292c2f;
--sidebar-fg: #a1adb8;
--sidebar-non-existant: #505254;
--sidebar-active: #3473ad;
--sidebar-spacer: #393939;
--scrollbar: var(--sidebar-fg);
--icons: #43484d;
--icons-hover: #b3c0cc;
--links: #2b79a2;
--inline-code-color: #c5c8c6;
--theme-popup-bg: #141617;
--theme-popup-border: #43484d;
--theme-hover: #1f2124;
--quote-bg: hsl(234, 21%, 18%);
--quote-border: hsl(234, 21%, 23%);
--warning-border: #ff8e00;
--table-border-color: hsl(200, 7%, 13%);
--table-header-bg: hsl(200, 7%, 28%);
--table-alternate-bg: hsl(200, 7%, 11%);
--searchbar-border-color: #aaa;
--searchbar-bg: #b7b7b7;
--searchbar-fg: #000;
--searchbar-shadow-color: #aaa;
--searchresults-header-fg: #666;
--searchresults-border-color: #98a3ad;
--searchresults-li-bg: #2b2b2f;
--search-mark-bg: #355c7d;
--color-scheme: dark;
/* Same as `--icons` */
--copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
/* Same as `--sidebar-active` */
--copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);
}
}

221
development.html Normal file
View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Development - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="development"><a class="header" href="#development">Development</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="variable/conditions.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="development/projectLayout.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="variable/conditions.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="development/projectLayout.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Best Practices - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/bestPractices.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="best-practices"><a class="header" href="#best-practices">Best Practices</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/updatingCompleters.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/bestPractices/coupledActions.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/updatingCompleters.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/bestPractices/coupledActions.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,250 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Coupled Actions - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/bestPractices/coupledActions.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="coupled-actions"><a class="header" href="#coupled-actions">Coupled Actions</a></h1>
<p>Use coupled actions to avoid repetition.</p>
<p>Sometimes an <a href="https://carapace-sh.github.io/carapace/carapace/action.html">Action</a> depends on the same flag values for multiple subcommands.
Since <a href="https://carapace-sh.github.io/carapace/carapace/defaultActions/actionCallback.html">ActionCallback</a> is needed to access these the code can become a bit cumbersome and bloated.</p>
<pre><code class="language-go">carapace.Gen(get_allCmd).PositionalCompletion(
carapace.ActionCallback(func(c carapace.Context) carapace.Action {
return helm.ActionReleases(helm.ReleasesOpts{
Namespace: rootCmd.Flag("namespace").Value.String(),
KubeContext: rootCmd.Flag("kube-context").Value.String(),
})
}),
)
</code></pre>
<p>An alternative to this is creating a local <a href="https://carapace-sh.github.io/carapace/carapace/action.html">Action</a> that is coupled to the command.
Meaning, passing it the command and expecting specific flags to be present.</p>
<pre><code class="language-go">// completers/helm_completer/cmd/action/release.go
func ActionReleases(cmd *cobra.Command) carapace.Action {
return carapace.ActionCallback(func(c carapace.Context) carapace.Action {
return helm.ActionReleases(helm.ReleasesOpts{
Namespace: cmd.Root().Flag("namespace").Value.String(),
KubeContext: cmd.Root().Flag("kube-context").Value.String(),
})
})
}
</code></pre>
<p>Thus the call becomes quite compact.</p>
<pre><code class="language-go">carapace.Gen(get_allCmd).PositionalCompletion(
action.ActionReleases(get_allCmd),
)
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/bestPractices.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/bestPractices.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,100 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1708677841, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.07467, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[0.075423, "o", "\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.075796, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.076241, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.096937, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.097142, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.994403, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.995354, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[1.01928, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[1.061956, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcd\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[1.140686, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[1.43719, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Cc\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[1.591946, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cm\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[1.835765, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cd/\r\u001b[13C\u001b[?25h"]
[2.181322, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Cc\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[2.243389, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Ca\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[2.387625, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Cr\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[2.474062, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Ca\r\u001b[17C\u001b[?25h"]
[2.474488, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[2.475084, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[2.475346, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[2.475439, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[2.673229, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cpace\r\u001b[21C\u001b[?25h"]
[3.613508, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[3.629475, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[3.629867, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.631677, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.661782, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.661937, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.662016, "o", "\u001b[?25l\u001b[1A\r\u001b[12C\u001b[K\u001b[0;1;36m/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;m\r\u001b[6C\u001b[?25h"]
[4.363132, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.364016, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.388787, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.38901, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.401178, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h"]
[4.401239, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[4.40128, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[4.565078, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[4.745807, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Cg\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[4.804389, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Ce\r\u001b[11C\u001b[?25h"]
[4.804786, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[4.933989, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cn\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[5.098791, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cerate \r\u001b[18C\u001b[?25h"]
[5.535419, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18C.\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[5.645514, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19C/\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[5.756611, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20C.\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[5.966345, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21C.\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[22C\u001b[?25h"]
[6.115609, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[22C.\r\u001b[23C\u001b[?25h"]
[6.115756, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[6.407695, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[7.243915, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[7.24408, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.244159, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.268031, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.268226, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.863917, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[7.96573, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[8.074049, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[8.074644, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[8.074692, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[8.20356, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Ci\r\u001b[10C\u001b[?25h"]
[8.266606, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cn\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[8.636639, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cstall \r\u001b[17C\u001b[?25h"]
[9.238487, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[10.212961, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[10.213055, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[10.213527, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[10.236493, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[10.236592, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[10.710017, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h"]
[10.710269, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[10.78272, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[10.841454, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[10.943613, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h"]
[10.943841, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[11.023057, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[11.151738, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[11.522564, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[11.602794, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Ca\r\u001b[14C\u001b[?25h"]
[11.603397, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[11.605956, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[11.606074, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[11.727, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cr\r\u001b[15C\u001b[?25h"]
[11.834051, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Ca\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[12.158919, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Cp\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[12.577364, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cace\r\u001b[20C\u001b[?25h"]
[13.000638, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[13.058075, "o", "/home/rsteube/go/bin/carapace\r\n"]
[13.058536, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[13.060452, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.061068, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.061904, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.086222, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.086369, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[14.714919, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[14.93247, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[15.178505, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h"]
[15.301735, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[16.366805, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

View File

@ -0,0 +1,148 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1708677803, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.075972, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"]
[0.076726, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.099637, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.099853, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.100022, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.100411, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[0.100615, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[0.100661, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[0.297624, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h"]
[0.298075, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.298751, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.328486, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.353831, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcd\u001b[0;m\r\u001b[8C\u001b[?25h"]
[0.428438, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[0.608071, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Cc\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[0.771631, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cm\r\u001b[11C\u001b[?25h"]
[0.771711, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[0.904254, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cd/\r\u001b[13C\u001b[?25h"]
[1.225194, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Cc\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[1.289444, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Ca\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[1.452076, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Cr\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[1.548494, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Ca\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[1.724212, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cpace\r\u001b[21C\u001b[?25h"]
[2.612264, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[2.623254, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[2.623583, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.624111, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.625229, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.625394, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.625548, "o", "\u001b[?25l\u001b[1A\r\r\n"]
[2.62568, "o", "\r\u001b[6C\u001b[?25h"]
[2.626359, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[2.658191, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\u001b[12C\u001b[K\u001b[0;1;36m/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;m\r\u001b[6C\u001b[?25h"]
[2.658302, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.111039, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h"]
[3.111189, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[3.111673, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[3.140484, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[3.140609, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[3.202527, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h"]
[3.362361, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[3.967586, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Cg\r\u001b[10C\u001b[?25h"]
[3.967774, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[4.028493, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Ce\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[4.183897, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cn\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[4.353219, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cerate \r\u001b[18C\u001b[?25h"]
[4.785372, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18C.\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[4.878595, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19C/\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[4.987137, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20C.\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[5.184974, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21C.\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[22C\u001b[?25h"]
[5.318441, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[22C.\r\u001b[23C\u001b[?25h"]
[5.31852, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[6.477545, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[6.477623, "o", "\u001b[?7h\u001b[?2004l\r"]
[7.196651, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[7.196721, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.197132, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.214979, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.215054, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[8.251271, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h"]
[8.377116, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C \r\u001b[8C\u001b[?25h"]
[8.598507, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8Co\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[8.88736, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[K\r\u001b[8C\u001b[?25h"]
[9.019341, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[K\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[9.172729, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[9.255505, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[9.526905, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Ci\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[9.626815, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cn\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[9.772959, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cstall \r\u001b[17C\u001b[?25h"]
[10.855271, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17C-\r\u001b[18C\u001b[?25h"]
[10.855375, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[11.17654, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Cl\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[11.359348, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17C\u001b[K\u001b[0;4m-ldflags \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34m-ldflags\u001b[0;2;7m (arguments to pass on each go tool link invocation) \r\n\u001b[0;m-linkshared\u001b[0;2m (build code that will be linked against shared libraries)\u001b[0;m\u001b[2A\r\u001b[22C\u001b[?25h"]
[12.030911, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[17C\u001b[K-ldflags \r\n\u001b[J\u001b[A\r\u001b[26C\u001b[?25h"]
[12.389022, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C-\r\u001b[27C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[27C\u001b[?25h"]
[12.535092, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C\u001b[K\u001b[0;4;33m'-B '\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34m-B\u001b[0;2;7m (add an ELF NT_GNU_BUILD_ID note when using ELF) \u001b[0;m \u001b[0;34m-debugtextsize\r\n-E\u001b[0;2m (set entry symbol name) \u001b[0;m \u001b[0;34m-debugtramp\u001b[0;2m (d\r\n\u001b[0;34m-H\u001b[0;2m (set header type) \u001b[0;m -dumpdep\u001b[0;2m (dump\r\n\u001b[0;34m-I\u001b[0;2m (use linker as ELF dynamic linker) \u001b[0;m \u001b[0;34m-extar\u001b[0;2m (archiv\r\n\u001b[0;34m-L\u001b[0;2m (add specified directory to library path) \u001b[0;m \u001b[0;34m-extld\u001b[0;2m (use li\r\n\u001b[0;34m-R\u001b[0;2m (set address rounding quantum (default -1)) \u001b[0;m \u001b[0;34m-extldflags\u001b[0;2m (p\r\n\u001b[0;34m-T\u001b[0;2m (set text segment address (default -1)) \u001b[0;m -f\u001b[0;2m (ignore ver\r\n\u001b[0;34m-X\u001b[0;2m (add string value definition of the form importpath.name=value) \u001b[0;m -g\u001b[0;2m (disable go\r\n\u001b[0;m-asan\u001b[0;2m (enable ASan interface) \u001b[0;m -h\u001b[0;2m (halt on er\r\n\u001b[0;m-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \u001b[0;m \u001b[0;34m-importcfg\u001b[0;2m (re\r\n\u001b[0;34m-benchmark\u001b[0;2m (set to 'mem' or 'cpu' to enable phase benchmarking) \u001b[0;m \u001b[0;34m-installsuffix\r\n-benchmarkprofile\u001b[0;2m (emit phase profiles to base_phase.{cpu,mem}prof) \u001b[0;m \u001b[0;34m-k\u001b[0;2m (set field \r\n\u001b[0;34m-buildid\u001b[0;2m (record id as Go toolchain build id) \u001b[0;m \u001b[0;34m-libgcc\u001b[0;2m (compi\r\n\u001b[0;34m-buildmode\u001b[0;2m (set build mode) \u001b[0;m \u001b[0;34m-linkmode\u001b[0;2m (set\r\n\u001b[0;m-c\u001b[0;2m (dump call graph) \u001b[0;m -linkshared\u001b[0;2m (l\r\n\u001b[0;34m-capturehostobjs\u001b[0;2m (capture host object files loaded during internal linking to specified dir)\u001b[0;m \u001b[0;34m-memprofile\u001b[0;2m (w\r\n\u001b[0;m-compressdwarf\u001b[0;2m (compress DWARF if possible (default true)) \u001b[0;m \u001b[0;34m-memprofilerat\r\n-cpuprofile\u001b[0;2m (write cpu profile to file) \u001b[0;m -msan\u001b[0;2m (enable \r\n\u001b[0;m-d\u001b[0;2m (disable dynamic executable) \u001b[0;m \u001b[0;34m-n\u001b[0;2m (symbol tab\r\n\u001b[0;m-debugnosplit\u001b[0;2m (dump nosplit call graph) \u001b[0;m \u001b[0;34m-o\u001b[0;2m (write outp\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[13.051166, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22C-\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[13.052929, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[13.160059, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[28C\u001b[K\u001b[0;4;33maslr '\r\n\u001b[23C\u001b[0;ms\r\n\u001b[K\u001b[0;7m-aslr\u001b[0;2;7m (enable ASLR for buildmode=c-shared on windows (default true)) \r\n\u001b[0;m\u001b[K-s\u001b[0;2m (disable symbol table) \r\n\u001b[1C\u001b[0;m\u001b[K\u001b[0;34mstrictdups\u001b[0;2m (sanity check duplicate symbol contents during object file reading (1=warn 2=err))\u001b[0;m\r\n\u001b[J\u001b[A\u001b[3A\r\u001b[24C\u001b[?25h"]
[13.160552, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\u001b[3A\r\u001b[24C\u001b[?25h"]
[13.161026, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\u001b[3A\r\u001b[24C\u001b[?25h"]
[13.767206, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[28C\u001b[K\u001b[0;4;33ms '\r\n\r\n\u001b[0;m\u001b[K-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \r\n\u001b[0;m\u001b[K\u001b[0;7m-s\u001b[0;2;7m (disable symbol table) \r\n\u001b[0;m\u001b[3A\r\u001b[24C\u001b[?25h"]
[14.02006, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[26C\u001b[K\u001b[0;33m'-s '\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[31C\u001b[?25h"]
[14.267128, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[31C-\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[32C\u001b[?25h"]
[14.468499, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C\u001b[K\u001b[0;4;33m'-s -B '\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34m-B\u001b[0;2;7m (add an ELF NT_GNU_BUILD_ID note when using ELF) \u001b[0;m \u001b[0;34m-debugtextsize\r\n-E\u001b[0;2m (set entry symbol name) \u001b[0;m \u001b[0;34m-debugtramp\u001b[0;2m (d\r\n\u001b[0;34m-H\u001b[0;2m (set header type) \u001b[0;m -dumpdep\u001b[0;2m (dump\r\n\u001b[0;34m-I\u001b[0;2m (use linker as ELF dynamic linker) \u001b[0;m \u001b[0;34m-extar\u001b[0;2m (archiv\r\n\u001b[0;34m-L\u001b[0;2m (add specified directory to library path) \u001b[0;m \u001b[0;34m-extld\u001b[0;2m (use li\r\n\u001b[0;34m-R\u001b[0;2m (set address rounding quantum (default -1)) \u001b[0;m \u001b[0;34m-extldflags\u001b[0;2m (p\r\n\u001b[0;34m-T\u001b[0;2m (set text segment address (default -1)) \u001b[0;m -f\u001b[0;2m (ignore ver\r\n\u001b[0;34m-X\u001b[0;2m (add string value definition of the form importpath.name=value) \u001b[0;m -g\u001b[0;2m (disable go\r\n\u001b[0;m-asan\u001b[0;2m (enable ASan interface) \u001b[0;m -h\u001b[0;2m (halt on er\r\n\u001b[0;m-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \u001b[0;m \u001b[0;34m-importcfg\u001b[0;2m (re\r\n\u001b[0;34m-benchmark\u001b[0;2m (set to 'mem' or 'cpu' to enable phase benchmarking) \u001b[0;m \u001b[0;34m-installsuffix\r\n-benchmarkprofile\u001b[0;2m (emit phase profiles to base_phase.{cpu,mem}prof) \u001b[0;m \u001b[0;34m-k\u001b[0;2m (set field \r\n\u001b[0;34m-buildid\u001b[0;2m (record id as Go toolchain build id) \u001b[0;m \u001b[0;34m-libgcc\u001b[0;2m (compi\r\n\u001b[0;34m-buildmode\u001b[0;2m (set build mode) \u001b[0;m \u001b[0;34m-linkmode\u001b[0;2m (set\r\n\u001b[0;m-c\u001b[0;2m (dump call graph) \u001b[0;m -linkshared\u001b[0;2m (l\r\n\u001b[0;34m-capturehostobjs\u001b[0;2m (capture host object files loaded during internal linking to specified dir)\u001b[0;m \u001b[0;34m-memprofile\u001b[0;2m (w\r\n\u001b[0;m-compressdwarf\u001b[0;2m (compress DWARF if possible (default true)) \u001b[0;m \u001b[0;34m-memprofilerat\r\n-cpuprofile\u001b[0;2m (write cpu profile to file) \u001b[0;m -msan\u001b[0;2m (enable \r\n\u001b[0;m-d\u001b[0;2m (disable dynamic executable) \u001b[0;m \u001b[0;34m-n\u001b[0;2m (symbol tab\r\n\u001b[0;m-debugnosplit\u001b[0;2m (dump nosplit call graph) \u001b[0;m \u001b[0;34m-o\u001b[0;2m (write outp\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[14.470813, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[22C\u001b[?25h"]
[14.968933, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22C-\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[14.972366, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[15.047978, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[31C\u001b[K\u001b[0;4;33mw '\r\n\u001b[23C\u001b[0;mw\r\n\u001b[K\u001b[0;7m-w\u001b[0;2;7m (disable DWARF generation)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[15.050344, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[15.052808, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[16.127706, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[26C\u001b[K\u001b[0;33m'-s -w '\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[34C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[34C\u001b[?25h"]
[16.848183, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[34C-\r\u001b[35C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[35C\u001b[?25h"]
[17.143264, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[34C\u001b[K\r\u001b[34C\u001b[?25h"]
[17.295286, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[34C \r\u001b[35C\u001b[?25h"]
[17.47693, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[35C-\r\u001b[36C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[36C\u001b[?25h"]
[17.853397, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[36Ct\r\u001b[37C\u001b[?25h"]
[17.853474, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[37C\u001b[?25h"]
[17.954011, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[37Ca\r\u001b[38C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[38C\u001b[?25h"]
[18.15132, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[38Cgs \r\u001b[41C\u001b[?25h"]
[18.772467, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[41C\u001b[0;4m386\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m386\u001b[0;m amd64 arm64 release windows\u001b[1A\r\u001b[22C\u001b[?25h"]
[19.300304, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[41C\u001b[K\u001b[0;4marm64\r\n\u001b[22C\u001b[0;mr\r\n\u001b[K\u001b[0;7marm64\u001b[0;m release\u001b[1A\r\u001b[23C\u001b[?25h"]
[19.30066, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[23C\u001b[?25h"]
[19.401771, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[41C\u001b[K\u001b[0;4mrelease\r\n\u001b[23C\u001b[0;me\r\n\u001b[K\u001b[0;7mrelease\u001b[0;m\u001b[1A\r\u001b[24C\u001b[?25h"]
[19.401884, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[19.505652, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[24Cl\r\n\u001b[1A\r\u001b[25C\u001b[?25h"]
[19.50588, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[25C\u001b[?25h"]
[19.899246, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[41C\u001b[Krelease\r\n\u001b[J\u001b[A\r\u001b[48C\u001b[?25h"]
[19.89969, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[48C\u001b[?25h"]
[20.907542, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[20.907866, "o", "\u001b[?7h\u001b[?2004l\r"]
[21.662204, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[21.662261, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[21.662863, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[21.68577, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[21.685973, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[22.853516, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h"]
[22.853618, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[22.923062, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[22.966742, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[23.066007, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[23.161868, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[23.576779, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h"]
[23.730265, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h"]
[23.730774, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[23.731269, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[23.732793, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[23.817504, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Ca\r\u001b[14C\u001b[?25h"]
[23.94815, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cr\r\u001b[15C\u001b[?25h"]
[23.948503, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[24.045231, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Ca\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[24.354712, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Cpace\r\u001b[20C\u001b[?25h"]
[24.355095, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[24.355243, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[24.853054, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[24.858863, "o", "/home/rsteube/go/bin/carapace\r\n"]
[24.85937, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[24.859778, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[24.860849, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[24.889721, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[27.173111, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h"]
[27.173186, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[27.383951, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h"]
[27.384062, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[27.528505, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[27.603858, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[27.731428, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

View File

@ -0,0 +1,119 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1708677924, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.109556, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"]
[0.110239, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.126631, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.127153, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.127206, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[0.395206, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.423722, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.4478, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcd\u001b[0;m\r\u001b[8C\u001b[?25h"]
[0.548904, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[0.548957, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[0.706135, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Cc\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[0.805732, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Co\r\u001b[11C\u001b[?25h"]
[0.805809, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[0.887205, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cm\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[0.897409, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cp\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[1.215655, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Cleters\r\u001b[19C\u001b[?25h"]
[2.572344, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19C/\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[2.899313, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Cl\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[2.989103, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21Cn\r\u001b[22C\u001b[?25h"]
[3.145556, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[K\u001b[0;4mcompleters/ln_completer/\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;189;147;249mcompleters/ln_completer/\u001b[0;m \u001b[0;38;2;189;147;249mcompleters/lnav_completer/\u001b[0;m \u001b[0;38;2;189;147;249mcompleters/lncrawl_completer/\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[4.224274, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[9C\u001b[Kcompleters/ln_completer/\r\n\u001b[J\u001b[A\r\u001b[33C\u001b[?25h"]
[4.930779, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[4.940682, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[4.941029, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[4.941943, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[4.964608, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[4.964773, "o", "\u001b[?25l\u001b[1A\r\u001b[12C\u001b[K\u001b[0;1;36m/completers/ln_completer\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;m\r\u001b[6C\u001b[?25h"]
[5.45545, "o", "\u001b[?25l\u001b[1A\r\r\n"]
[5.455995, "o", "\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[5.456994, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[5.45789, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[5.492645, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[5.492683, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[5.526986, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h"]
[5.614437, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[5.614774, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[5.758689, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Ci\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[5.829298, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cn\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[6.100438, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cstall \r\u001b[17C\u001b[?25h"]
[6.7413, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17C-\r\u001b[18C\u001b[?25h"]
[6.741459, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[6.946986, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Cl\r\u001b[19C\u001b[?25h"]
[7.048907, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Cd\r\u001b[20C\u001b[?25h"]
[7.049058, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[7.373014, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Cflags \r\u001b[26C\u001b[?25h"]
[8.362123, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C-\r\u001b[27C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[27C\u001b[?25h"]
[9.032751, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C\u001b[K\u001b[0;4;33m'-B '\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34m-B\u001b[0;2;7m (add an ELF NT_GNU_BUILD_ID note when using ELF) \u001b[0;m \u001b[0;34m-debugtextsize\r\n-E\u001b[0;2m (set entry symbol name) \u001b[0;m \u001b[0;34m-debugtramp\u001b[0;2m (d\r\n\u001b[0;34m-H\u001b[0;2m (set header type) \u001b[0;m -dumpdep\u001b[0;2m (dump\r\n\u001b[0;34m-I\u001b[0;2m (use linker as ELF dynamic linker) \u001b[0;m \u001b[0;34m-extar\u001b[0;2m (archiv\r\n\u001b[0;34m-L\u001b[0;2m (add specified directory to library path) \u001b[0;m \u001b[0;34m-extld\u001b[0;2m (use li\r\n\u001b[0;34m-R\u001b[0;2m (set address rounding quantum (default -1)) \u001b[0;m \u001b[0;34m-extldflags\u001b[0;2m (p\r\n\u001b[0;34m-T\u001b[0;2m (set text segment address (default -1)) \u001b[0;m -f\u001b[0;2m (ignore ver\r\n\u001b[0;34m-X\u001b[0;2m (add string value definition of the form importpath.name=value) \u001b[0;m -g\u001b[0;2m (disable go\r\n\u001b[0;m-asan\u001b[0;2m (enable ASan interface) \u001b[0;m -h\u001b[0;2m (halt on er\r\n\u001b[0;m-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \u001b[0;m \u001b[0;34m-importcfg\u001b[0;2m (re\r\n\u001b[0;34m-benchmark\u001b[0;2m (set to 'mem' or 'cpu' to enable phase benchmarking) \u001b[0;m \u001b[0;34m-installsuffix\r\n-benchmarkprofile\u001b[0;2m (emit phase profiles to base_phase.{cpu,mem}prof) \u001b[0;m \u001b[0;34m-k\u001b[0;2m (set field \r\n\u001b[0;34m-buildid\u001b[0;2m (record id as Go toolchain build id) \u001b[0;m \u001b[0;34m-libgcc\u001b[0;2m (compi\r\n\u001b[0;34m-buildmode\u001b[0;2m (set build mode) \u001b[0;m \u001b[0;34m-linkmode\u001b[0;2m (set\r\n\u001b[0;m-c\u001b[0;2m (dump call graph) \u001b[0;m -linkshared\u001b[0;2m (l\r\n\u001b[0;34m-capturehostobjs\u001b[0;2m (capture host object files loaded during internal linking to specified dir)\u001b[0;m \u001b[0;34m-memprofile\u001b[0;2m (w\r\n\u001b[0;m-compressdwarf\u001b[0;2m (compress DWARF if possible (default true)) \u001b[0;m \u001b[0;34m-memprofilerat\r\n-cpuprofile\u001b[0;2m (write cpu profile to file) \u001b[0;m -msan\u001b[0;2m (enable \r\n\u001b[0;m-d\u001b[0;2m (disable dynamic executable) \u001b[0;m \u001b[0;34m-n\u001b[0;2m (symbol tab\r\n\u001b[0;m-debugnosplit\u001b[0;2m (dump nosplit call graph) \u001b[0;m \u001b[0;34m-o\u001b[0;2m (write outp\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[9.492334, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22C-\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[9.592317, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[28C\u001b[K\u001b[0;4;33maslr '\r\n\u001b[23C\u001b[0;ms\r\n\u001b[K\u001b[0;7m-aslr\u001b[0;2;7m (enable ASLR for buildmode=c-shared on windows (default true)) \r\n\u001b[0;m\u001b[K-s\u001b[0;2m (disable symbol table) \r\n\u001b[1C\u001b[0;m\u001b[K\u001b[0;34mstrictdups\u001b[0;2m (sanity check duplicate symbol contents during object file reading (1=warn 2=err))\u001b[0;m\r\n\u001b[J\u001b[A\u001b[3A\r\u001b[24C\u001b[?25h"]
[9.5928, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\u001b[3A\r\u001b[24C\u001b[?25h"]
[10.179982, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[28C\u001b[K\u001b[0;4;33ms '\r\n\r\n\u001b[0;m\u001b[K-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \r\n\u001b[0;m\u001b[K\u001b[0;7m-s\u001b[0;2;7m (disable symbol table) \r\n\u001b[0;m\u001b[3A\r\u001b[24C\u001b[?25h"]
[10.374635, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[26C\u001b[K\u001b[0;33m'-s '\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[31C\u001b[?25h"]
[10.374804, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[31C\u001b[?25h"]
[10.630201, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[31C-\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[32C\u001b[?25h"]
[11.107904, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C\u001b[K\u001b[0;4;33m'-s -B '\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34m-B\u001b[0;2;7m (add an ELF NT_GNU_BUILD_ID note when using ELF) \u001b[0;m \u001b[0;34m-debugtextsize\r\n-E\u001b[0;2m (set entry symbol name) \u001b[0;m \u001b[0;34m-debugtramp\u001b[0;2m (d\r\n\u001b[0;34m-H\u001b[0;2m (set header type) \u001b[0;m -dumpdep\u001b[0;2m (dump\r\n\u001b[0;34m-I\u001b[0;2m (use linker as ELF dynamic linker) \u001b[0;m \u001b[0;34m-extar\u001b[0;2m (archiv\r\n\u001b[0;34m-L\u001b[0;2m (add specified directory to library path) \u001b[0;m \u001b[0;34m-extld\u001b[0;2m (use li\r\n\u001b[0;34m-R\u001b[0;2m (set address rounding quantum (default -1)) \u001b[0;m \u001b[0;34m-extldflags\u001b[0;2m (p\r\n\u001b[0;34m-T\u001b[0;2m (set text segment address (default -1)) \u001b[0;m -f\u001b[0;2m (ignore ver\r\n\u001b[0;34m-X\u001b[0;2m (add string value definition of the form importpath.name=value) \u001b[0;m -g\u001b[0;2m (disable go\r\n\u001b[0;m-asan\u001b[0;2m (enable ASan interface) \u001b[0;m -h\u001b[0;2m (halt on er\r\n\u001b[0;m-aslr\u001b[0;2m (enable ASLR for buildmode=c-shared on windows (default true)) \u001b[0;m \u001b[0;34m-importcfg\u001b[0;2m (re\r\n\u001b[0;34m-benchmark\u001b[0;2m (set to 'mem' or 'cpu' to enable phase benchmarking) \u001b[0;m \u001b[0;34m-installsuffix\r\n-benchmarkprofile\u001b[0;2m (emit phase profiles to base_phase.{cpu,mem}prof) \u001b[0;m \u001b[0;34m-k\u001b[0;2m (set field \r\n\u001b[0;34m-buildid\u001b[0;2m (record id as Go toolchain build id) \u001b[0;m \u001b[0;34m-libgcc\u001b[0;2m (compi\r\n\u001b[0;34m-buildmode\u001b[0;2m (set build mode) \u001b[0;m \u001b[0;34m-linkmode\u001b[0;2m (set\r\n\u001b[0;m-c\u001b[0;2m (dump call graph) \u001b[0;m -linkshared\u001b[0;2m (l\r\n\u001b[0;34m-capturehostobjs\u001b[0;2m (capture host object files loaded during internal linking to specified dir)\u001b[0;m \u001b[0;34m-memprofile\u001b[0;2m (w\r\n\u001b[0;m-compressdwarf\u001b[0;2m (compress DWARF if possible (default true)) \u001b[0;m \u001b[0;34m-memprofilerat\r\n-cpuprofile\u001b[0;2m (write cpu profile to file) \u001b[0;m -msan\u001b[0;2m (enable \r\n\u001b[0;m-d\u001b[0;2m (disable dynamic executable) \u001b[0;m \u001b[0;34m-n\u001b[0;2m (symbol tab\r\n\u001b[0;m-debugnosplit\u001b[0;2m (dump nosplit call graph) \u001b[0;m \u001b[0;34m-o\u001b[0;2m (write outp\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━\u001b[0;m\u001b[21A\r\u001b[22C\u001b[?25h"]
[11.109005, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[22C\u001b[?25h"]
[11.433554, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22C-\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[21A\r\u001b[23C\u001b[?25h"]
[11.497403, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[31C\u001b[K\u001b[0;4;33mw '\r\n\u001b[23C\u001b[0;mw\r\n\u001b[K\u001b[0;7m-w\u001b[0;2;7m (disable DWARF generation)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[11.497764, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[12.216061, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[26C\u001b[K\u001b[0;33m'-s -w '\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[34C\u001b[?25h"]
[12.216414, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[34C\u001b[?25h"]
[13.326415, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[13.573703, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[13.573876, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/completers/ln_completer\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.574128, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.59292, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[13.593058, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[14.592971, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[14.659386, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[14.708985, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[14.806675, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[15.268494, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[15.385275, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[15.558109, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cl\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[15.62473, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Cn\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[15.958572, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C_\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[16.799207, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Ccompleter \r\u001b[25C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[25C\u001b[?25h"]
[16.799764, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[25C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[25C\u001b[?25h"]
[17.35008, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[17.350506, "o", "\u001b[?7h\u001b[?2004l\r"]
[17.357083, "o", "/home/rsteube/go/bin/ln_completer\r\n"]
[17.357414, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[17.357862, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/completers/ln_completer\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[17.358684, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[17.388296, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[17.388325, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[17.999472, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31ml\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[18.051312, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mln\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[18.345807, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mln_\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[18.615095, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h"]
[18.615156, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[18.706588, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31mo\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[18.769268, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31mm\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[18.901479, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mln_completer\u001b[0;m\r\u001b[18C\u001b[?25h"]
[19.42143, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18C \r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[19.709201, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19C_\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[19.912072, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Cc\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[19.998799, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21Ca\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[22C\u001b[?25h"]
[20.149793, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[22Cr\r\u001b[23C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[20.256496, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[23Ca\r\u001b[24C\u001b[?25h"]
[20.256866, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[24C\u001b[?25h"]
[20.3452, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[24Cp\r\u001b[25C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[25C\u001b[?25h"]
[20.431442, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[25Ca\r\u001b[26C\u001b[?25h"]
[20.465514, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26Cc\r\u001b[27C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[27C\u001b[?25h"]
[20.522934, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[27Ce\r\u001b[28C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[28C\u001b[?25h"]
[20.769033, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[20.777495, "o", "set edit:completion:arg-completer[ln] = {|@arg|\r\n ln_completer _carapace elvish (all $arg) | from-json | each {|completion|\r\n\t\tput $completion[Messages] | all (one) | each {|m|\r\n\t\t\tedit:notify (styled \"error: \" red)$m\r\n\t\t}\r\n\t\tif (not-eq $completion[Usage] \"\") {\r\n\t\t\tedit:notify (styled \"usage: \" $completion[DescriptionStyle])$completion[Usage]\r\n\t\t}\r\n\t\tput $completion[Candidates] | all (one) | peach {|c|\r\n\t\t\tif (eq $c[Description] \"\") {\r\n\t\t \tedit:complex-candidate $c[Value] &display=(styled $c[Display] $c[Style]) &code-suffix=$c[CodeSuffix]\r\n\t\t\t} else {\r\n\t\t \tedit:complex-candidate $c[Value] &display=(styled $c[Display] $c[Style])(styled \" \" $completion[DescriptionStyle]\" bg-default\")(styled \"(\"$c[Description]\")\" $completion[DescriptionStyle]) &code-suffix=$c[CodeSuffix]\r\n\t\t\t}\r\n\t\t}\r\n }\r\n}\r\n\r\n"]
[20.778511, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[20.778809, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/completers/ln_completer\u001b[0;m on \u001b[0;1;35m doc-build\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[20.779068, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[20.779778, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[20.811573, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[22.046116, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[22.281691, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[22.490619, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[22.59508, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h"]
[22.595516, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[24.004877, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

245
development/build.html Normal file
View File

@ -0,0 +1,245 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Build - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/build.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="build"><a class="header" href="#build">Build</a></h1>
<h2 id="requirements"><a class="header" href="#requirements">Requirements</a></h2>
<ul>
<li><a href="https://go.dev/">Go</a></li>
<li>Ensure <code>PATH</code> contains your <code>~/go/bin</code> folder (see <a href="https://go.dev/doc/code#Command">doc</a>)</li>
</ul>
<h2 id="development"><a class="header" href="#development">Development</a></h2>
<pre><code class="language-sh">cd cmd/carapace
go generate ./... # only needed once and when there are new completers or actions
go install
</code></pre>
<p><img src="./build-development.cast" alt="" /></p>
<h2 id="release"><a class="header" href="#release">Release</a></h2>
<p>A build with the <code>release</code> <a href="https://www.digitalocean.com/community/tutorials/customizing-go-binaries-with-build-tags">tag</a> uses <code>completers_release</code> which optimizes startup times.</p>
<pre><code class="language-sh">cd cmd/carapace
go generate ./... # always needed for `completers_release` to be updated
go install -ldflags="-s -w" -tags release
</code></pre>
<p><img src="./build-release.cast" alt="" /></p>
<h2 id="separate"><a class="header" href="#separate">Separate</a></h2>
<p>Completers can also be built (and thus maintained) separately.</p>
<pre><code class="language-sh">cd completers/ln_completer
go install -ldflags="-s -w"
</code></pre>
<p><img src="./build-separate.cast" alt="" /></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/projectLayout.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/docker.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/projectLayout.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/docker.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Creating Completers - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/creatingCompleters.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="creating-completers"><a class="header" href="#creating-completers">Creating completers</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/docker.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/creatingCompleters/manually.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/docker.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/creatingCompleters/manually.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,223 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Examples - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/creatingCompleters/examples.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="examples"><a class="header" href="#examples">Examples</a></h1>
<h2 id="journalctl"><a class="header" href="#journalctl">Journalctl</a></h2>
<p><a href="https://asciinema.org/a/466859"><img src="https://asciinema.org/a/466859.svg" alt="asciicast" /></a></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/creatingCompleters/scraping.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/updatingCompleters.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/creatingCompleters/scraping.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/updatingCompleters.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,251 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Manually - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/creatingCompleters/manually.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="manually"><a class="header" href="#manually">Manually</a></h1>
<ul>
<li>Copy a basic completer for simplicity.</li>
</ul>
<pre><code class="language-sh">cp -r completers/ln_completer completers/manually_completer
</code></pre>
<ul>
<li>Update the package name in <code>main.go</code>.</li>
</ul>
<pre><code class="language-diff">-import "github.com/carapace-sh/carapace-bin/completers/ln_completer/cmd"
+import "github.com/carapace-sh/carapace-bin/completers/manually_completer/cmd"
</code></pre>
<ul>
<li>Create the root command.</li>
</ul>
<pre><code class="language-sh">echo | carapace-parse -n manually &gt; root.go
</code></pre>
<ul>
<li>Add subcommands.</li>
</ul>
<pre><code class="language-sh">echo | carapace-parse -n subcommand -p root &gt; subcommand.go
</code></pre>
<ul>
<li>
<p>Define flags and completions.</p>
</li>
<li>
<p><a href="../build.html#development">Build and install</a>.</p>
</li>
</ul>
<p><img src="./manually.cast" alt="" /></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/creatingCompleters.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/parsing.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/creatingCompleters.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/parsing.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Parsing - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/creatingCompleters/parsing.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="parsing"><a class="header" href="#parsing">Parsing</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/creatingCompleters/manually.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/scraping.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/creatingCompleters/manually.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/scraping.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Scraping - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/creatingCompleters/scraping.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="scraping"><a class="header" href="#scraping">Scraping</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/creatingCompleters/parsing.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/examples.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/creatingCompleters/parsing.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/creatingCompleters/examples.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

126
development/docker.cast Normal file
View File

@ -0,0 +1,126 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1708679162, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.115474, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"]
[0.116161, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.132913, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.133026, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!?]\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.503687, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31md\u001b[0;m\r\u001b[7C\u001b[?25h"]
[0.504581, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.505014, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.505417, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.505482, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.530335, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.530447, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.575553, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[0.683603, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mc\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[0.77123, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mk\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[0.838692, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31me\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[0.903788, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mdocker\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[1.009449, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mdocker-\u001b[0;m\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[1.117608, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13C\u001b[0;31mc\u001b[0;m\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[1.202884, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C\u001b[0;31mo\u001b[0;m\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[1.305158, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C\u001b[0;31mm\u001b[0;m\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[1.424321, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mdocker-compose\u001b[0;m\r\u001b[20C\u001b[?25h"]
[1.784346, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20C \r\u001b[21C\u001b[?25h"]
[1.784688, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[1.785891, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[1.786079, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[1.941742, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21Cr\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[22C\u001b[?25h"]
[2.077252, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[22Cu\r\u001b[23C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[2.704445, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[23Cn \r\u001b[25C\u001b[?25h"]
[3.19142, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[25C-\r\u001b[26C\u001b[?25h"]
[3.191507, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[26C\u001b[?25h"]
[3.371408, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[26C-\r\u001b[27C\u001b[?25h"]
[3.371486, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[27C\u001b[?25h"]
[3.575555, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[27Cr\r\u001b[28C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[28C\u001b[?25h"]
[3.690705, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[28Cm\r\u001b[29C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[29C\u001b[?25h"]
[3.937578, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[29C \r\u001b[30C\u001b[?25h"]
[4.484648, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[30C\u001b[0;4mbash \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mbash\u001b[0;2;7m (ghcr.io/rsteube/carapace) \u001b[0;m lint\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mble\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m nushell\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mbuild\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m oil\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;melvish\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m powershell\u001b[0;2m (ghcr.io/rsteube/carapace)\r\n\u001b[0;mfish\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m tcsh\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mfmt\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m test\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;minittrace\u001b[0;2m (ghcr.io/rsteube/carapace)\u001b[0;m xonsh\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mion\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m zsh\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m\u001b[8A\r\u001b[22C\u001b[?25h"]
[4.933111, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22Cb\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[4.933642, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[5.05736, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[31C\u001b[K\u001b[0;4muild \r\n\u001b[23C\u001b[0;mu\r\n\u001b[1C\u001b[K\u001b[0;7muild\u001b[0;2;7m (ghcr.io/rsteube/carapace)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[5.115825, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[24Ci\r\n\u001b[1A\r\u001b[25C\u001b[?25h"]
[5.115896, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[25C\u001b[?25h"]
[5.153994, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[25Cl\r\n\u001b[1A\r\u001b[26C\u001b[?25h"]
[5.154089, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[26C\u001b[?25h"]
[5.588098, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[30C\u001b[Kbuild \r\n\u001b[J\u001b[A\r\u001b[36C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[36C\u001b[?25h"]
[6.107042, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[6.493117, "o", "go: downloading github.com/rsteube/carapace v0.50.0\r\n"]
[6.493405, "o", "go: downloading gopkg.in/yaml.v3 v3.0.1\r\ngo: downloading github.com/rsteube/carapace-bridge v0.2.14\r\n"]
[6.555831, "o", "go: downloading github.com/rsteube/carapace-spec v0.15.0\r\n"]
[6.556342, "o", "go: downloading github.com/spf13/cobra v1.8.0\r\n"]
[6.567072, "o", "go: downloading github.com/rsteube/carapace-pflag v0.2.0\r\n"]
[7.044913, "o", "go: downloading github.com/rsteube/carapace-shlex v0.1.2\r\n"]
[7.073971, "o", "go: downloading github.com/invopop/jsonschema v0.12.0\r\n"]
[7.12248, "o", "go: downloading github.com/pelletier/go-toml v1.9.5\r\ngo: downloading gopkg.in/ini.v1 v1.67.0\r\n"]
[7.122984, "o", "go: downloading golang.org/x/mod v0.15.0\r\n"]
[7.265767, "o", "go: downloading github.com/wk8/go-ordered-map/v2 v2.1.8\r\n"]
[7.354649, "o", "go: downloading github.com/mailru/easyjson v0.7.7\r\ngo: downloading github.com/bahlo/generic-list-go v0.2.0\r\ngo: downloading github.com/buger/jsonparser v1.1.1\r\n"]
[51.032314, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[51.032541, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!?]\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[51.032991, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[51.051471, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[51.051538, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[52.436562, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;4;32mdocker-compose\u001b[0;4m run --rm build \r\n\u001b[0;1;37;45m HISTORY #55727 \u001b[0;m\u001b[1A\r\u001b[36C\u001b[?25h"]
[52.896407, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mdocker-compose\u001b[0;m run --rm build\r\n\u001b[J\u001b[A\r\u001b[35C\u001b[?25h"]
[53.096158, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[34C\u001b[K\r\u001b[34C\u001b[?25h"]
[53.245638, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[33C\u001b[K\r\u001b[33C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[33C\u001b[?25h"]
[53.247419, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[33C\u001b[?25h"]
[53.2479, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[33C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[33C\u001b[?25h"]
[53.399052, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[32C\u001b[K\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[32C\u001b[?25h"]
[53.558858, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[31C\u001b[K\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[31C\u001b[?25h"]
[53.725034, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[30C\u001b[K\r\u001b[30C\u001b[?25h"]
[54.086307, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[30C\u001b[0;4mbash \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mbash\u001b[0;2;7m (ghcr.io/rsteube/carapace) \u001b[0;m lint\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mble\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m nushell\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mbuild\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m oil\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;melvish\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m powershell\u001b[0;2m (ghcr.io/rsteube/carapace)\r\n\u001b[0;mfish\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m tcsh\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mfmt\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m test\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;minittrace\u001b[0;2m (ghcr.io/rsteube/carapace)\u001b[0;m xonsh\u001b[0;2m (ghcr.io/rsteube/carapace) \r\n\u001b[0;mion\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m zsh\u001b[0;2m (ghcr.io/rsteube/carapace) \u001b[0;m\u001b[8A\r\u001b[22C\u001b[?25h"]
[54.382833, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22Ce\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[54.383861, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[54.473802, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[30C\u001b[K\u001b[0;4melvish \r\n\u001b[23C\u001b[0;ml\r\n\u001b[K\u001b[0;7melvish\u001b[0;2;7m (ghcr.io/rsteube/carapace) \u001b[0;m powershell\u001b[0;2m (ghcr.io/rsteube/carapace)\r\n\u001b[0;m\u001b[Knushell\u001b[0;2m (ghcr.io/rsteube/carapace)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[2A\r\u001b[24C\u001b[?25h"]
[54.474137, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\u001b[2A\r\u001b[24C\u001b[?25h"]
[54.595349, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[24Cv\r\n\u001b[33C\u001b[K\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[25C\u001b[?25h"]
[54.59543, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[25C\u001b[?25h"]
[54.735738, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[25Ci\r\n\u001b[1A\r\u001b[26C\u001b[?25h"]
[54.735855, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[26C\u001b[?25h"]
[55.044257, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[30C\u001b[Kelvish \r\n\u001b[J\u001b[A\r\u001b[37C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[37C\u001b[?25h"]
[55.427809, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[56.070299, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"]
[56.070477, "o", "\u001b[?25l\r\u001b[91C\u001b[K\u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[5C\u001b[?25h"]
[56.08798, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[56.088104, "o", "\u001b[?25l\r\u001b[K\r\n\u001b[0;1;36m/go\u001b[0;m \r\n\u001b[0;1;2;31m⬢ [Docker]\u001b[0;m \u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[17C\u001b[?25h"]
[57.589671, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17C\u001b[K\u001b[0;31mg\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"]
[57.590486, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"]
[57.609624, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"]
[57.670804, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[18C\u001b[K\u001b[0;31mi\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[19C\u001b[?25h"]
[57.72403, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17C\u001b[K\u001b[0;32mgit\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[20C\u001b[?25h"]
[57.787832, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[21C\u001b[?25h"]
[58.117423, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[21C\u001b[K\u001b[0;4madd \u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;34madd\u001b[0;2;7m (Add file contents to the index) \u001b[0;m \u001b[0;34mcherry-pick\u001b[0;2m (Apply the chang\r\n\u001b[0;34mam\u001b[0;2m (Apply a series of patches from a mailbox) \u001b[0;m \u001b[0;34mcitool\u001b[0;2m (Graphical alternativ\r\n\u001b[0;35mannotate\u001b[0;2m (Show what revision and author last modified each line of a file) \u001b[0;m \u001b[0;34mclean\u001b[0;2m (Remove untracked file\r\n\u001b[0;2;33mapply\u001b[0;2m (Apply a patch to files and/or to the index) \u001b[0;m \u001b[0;34mclone\u001b[0;2m (Clone a repository in\r\n\u001b[0;36marchimport\u001b[0;2m (Import a GNU Arch repository into Git) \u001b[0;m \u001b[0;2;32mcolumn\u001b[0;2m (Display data in colu\r\n\u001b[0;34marchive\u001b[0;2m (Create an archive of files from a named tree) \u001b[0;m \u001b[0;34mcommit\u001b[0;2m (Record changes to th\r\n\u001b[0;34mbisect\u001b[0;2m (Use binary search to find the commit that introduced a bug) \u001b[0;m \u001b[0;2;33mcommit-graph\u001b[0;2m (Write and veri\r\n\u001b[0;35mblame\u001b[0;2m (Show what revision and author last modified each line of a file) \u001b[0;m \u001b[0;2;33mcommit-tree\u001b[0;2m (Create a new co\r\n\u001b[0;34mbranch\u001b[0;2m (List, create, or delete branches) \u001b[0;m \u001b[0;33mconfig\u001b[0;2m (Get and set reposito\r\n\u001b[0;35mbugreport\u001b[0;2m (Collect information for user to file a bug report) \u001b[0;m \u001b[0;35mcount-objects\u001b[0;2m (Count unpacke\r\n\u001b[0;34mbundle\u001b[0;2m (Move objects and refs by archive) \u001b[0;m \u001b[0;2;32mcredential\u001b[0;2m (Retrieve and sto\r\n\u001b[0;2;35mcat-file\u001b[0;2m (Provide content or type and size information for repository objects)\u001b[0;m \u001b[0;2;32mcredential-cache\u001b[0;2m (Helper to \r\n\u001b[0;2;32mcheck-attr\u001b[0;2m (Display gitattributes information) \u001b[0;m \u001b[0;2;32mcredential-store\u001b[0;2m (Helper to \r\n\u001b[0;2;32mcheck-ignore\u001b[0;2m (Debug gitignore / exclude files) \u001b[0;m \u001b[0;36mcvsexportcommit\u001b[0;2m (Export a si\r\n\u001b[0;2;32mcheck-mailmap\u001b[0;2m (Show canonical names and email addresses of contacts) \u001b[0;m \u001b[0;36mcvsimport\u001b[0;2m (Salvage your data\r\n\u001b[0;2;32mcheck-ref-format\u001b[0;2m (Ensures that a reference name is well formed) \u001b[0;m \u001b[0;36mcvsserver\u001b[0;2m (A CVS server emul\r\n\u001b[0;34mcheckout\u001b[0;2m (Switch branches or restore working tree files) \u001b[0;m \u001b[0;2;36mdaemon\u001b[0;2m (A really simple serv\r\n\u001b[0;2;33mcheckout-index\u001b[0;2m (Copy files from the index to the working tree) \u001b[0;m \u001b[0;34mdescribe\u001b[0;2m (Give an object a h\r\n\u001b[0;2;35mcherry\u001b[0;2m (Find commits yet to be applied to upstream) \u001b[0;m \u001b[0;34mdiff\u001b[0;2m (Show changes between c\r\n\u001b[0;7;35m \u001b[0;35m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0;m\u001b[20A\r\u001b[22C\u001b[?25h"]
[59.937989, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[20A\r\u001b[22C\u001b[?25h"]
[60.13693, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[20A\r\u001b[22C\u001b[?25h"]
[60.14147, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[20A\r\u001b[22C\u001b[?25h"]
[60.143772, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[20A\r\u001b[22C\u001b[?25h"]
[60.394541, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[17C\u001b[K \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[60.394972, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[60.415622, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[60.987457, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17C\u001b[K\u001b[0;31mg\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"]
[61.130682, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[18C\u001b[K\u001b[0;31mh\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[19C\u001b[?25h"]
[61.173136, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[20C\u001b[?25h"]
[61.487116, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[20C\u001b[K\u001b[0;4malias \u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7malias\u001b[0;2;7m (Create command shortcuts) \u001b[0;m \u001b[0;34mpr\u001b[0;2m (Manage pull requests) \r\n\u001b[0;mapi\u001b[0;2m (Make an authenticated GitHub API request)\u001b[0;m \u001b[0;34mproject\u001b[0;2m (Work with GitHub Projects.) \r\n\u001b[0;34mauth\u001b[0;2m (Authenticate gh and git with GitHub) \u001b[0;m \u001b[0;34mrelease\u001b[0;2m (Manage releases) \r\n\u001b[0;34mbrowse\u001b[0;2m (Open the repository in the browser) \u001b[0;m \u001b[0;34mrepo\u001b[0;2m (Manage repositories) \r\n\u001b[0;33mcache\u001b[0;2m (Manage Github Actions caches) \u001b[0;m rs\u001b[0;2m (View info about repo rulesets) \r\n\u001b[0;36mco\u001b[0;2m (pr checkout) \u001b[0;m ruleset\u001b[0;2m (View info about repo rulesets) \r\n\u001b[0;34mcodespace\u001b[0;2m (Connect to and manage codespaces) \u001b[0;m \u001b[0;33mrun\u001b[0;2m (View details about workflow runs) \r\n\u001b[0;mcompletion\u001b[0;2m (Generate shell completion scripts)\u001b[0;m search\u001b[0;2m (Search for repositories, issues, and pull requests) \r\n\u001b[0;mconfig\u001b[0;2m (Manage configuration for gh) \u001b[0;m secret\u001b[0;2m (Manage GitHub secrets) \r\n\u001b[0;34mcs\u001b[0;2m (Connect to and manage codespaces) \u001b[0;m ssh-key\u001b[0;2m (Manage SSH keys) \r\n\u001b[0;mext\u001b[0;2m (Manage gh extensions) \u001b[0;m status\u001b[0;2m (Print information about relevant issues, pull reques\r\n\u001b[0;mextension\u001b[0;2m (Manage gh extensions) \u001b[0;m variable\u001b[0;2m (Manage GitHub Actions variables) \r\n\u001b[0;mextensions\u001b[0;2m (Manage gh extensions) \u001b[0;m \u001b[0;33mworkflow\u001b[0;2m (View details about GitHub Actions workflows) \r\n\u001b[0;34mgist\u001b[0;2m (Manage gists) \r\n\u001b[0;mgpg-key\u001b[0;2m (Manage GPG keys) \r\n\u001b[0;mhelp\u001b[0;2m (Help about any command) \r\n\u001b[0;34missue\u001b[0;2m (Manage issues) \r\n\u001b[0;mlabel\u001b[0;2m (Manage labels) \r\n\u001b[0;34morg\u001b[0;2m (Manage organizations) \r\n\u001b[0;7;35m \u001b[0;m\u001b[20A\r\u001b[22C\u001b[?25h"]
[61.488057, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[20A\r\u001b[22C\u001b[?25h"]
[62.638935, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[17C\u001b[K \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[62.640514, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[62.665397, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[62.999034, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17C\u001b[K\u001b[0;31me\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[18C\u001b[?25h"]
[63.192764, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[18C\u001b[K\u001b[0;31mx\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[19C\u001b[?25h"]
[63.353827, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[19C\u001b[K\u001b[0;31mi\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[20C\u001b[?25h"]
[63.439584, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[17C\u001b[K\u001b[0;32mexit\u001b[0;m \u001b[0;7mroot@b8d7a7ad9bcd\u001b[0;m\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[21C\u001b[?25h"]
[64.074082, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[21C\u001b[K\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[64.310954, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[64.311373, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!?]\u001b[0;m via \u001b[0;1;36m🐹 v1.22.0 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[64.31169, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[64.337857, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[64.337975, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[64.338272, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[65.105103, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h"]
[65.402867, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[65.74484, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h"]
[65.744974, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[65.863696, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[66.101676, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[66.101784, "o", "\u001b[?7h\u001b[?2004l\r"]

226
development/docker.html Normal file
View File

@ -0,0 +1,226 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Docker - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/docker.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="docker"><a class="header" href="#docker">Docker</a></h1>
<pre><code class="language-sh">docker-compose run --rm build # build once (will be mounted from `cmd/carapace`)
docker-compose run --rm [bash|elvish|fish|ion|nushell|oil|powershell|tcsh|xonsh|zsh]
[ln|mkdir|chown...] &lt;TAB&gt;
</code></pre>
<p><img src="./docker.cast" alt="" /></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/build.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/creatingCompleters.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/build.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/creatingCompleters.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,245 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Project Layout - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/projectLayout.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="project-layout"><a class="header" href="#project-layout">Project Layout</a></h1>
<pre><code class="language-sh">.
├── cmd
│ ├── carapace # main application
│ ├── carapace-fmt # simple formatter
│ ├── carapace-generate # executed by `go generate`
│ ├── carapace-lint # simple linter
│ ├── carapace-parse # simple help output parser
│ └── carapace-shim # binary for runnable specs in windows
├── completers # completers
│ └── example_completer # completer for `example`
│ └── cmd
│ └── action # local (coupled) actions
├── completers_release # optimized completers
├── dist # goreleaser dist folder
├── docs # documentation
├── internal # internal packages
└── pkg # public packages
├── actions # shared actions that are also exposed as macros
│ └── tools # shared actions specific to tools
├── conditions # conditions for environment variable completion
├── env # environment variables
├── styles # style configurations
└── util # util functions
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/build.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/build.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

221
development/tools.html Normal file
View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Tools - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/tools.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="tools"><a class="header" href="#tools">Tools</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/bestPractices/coupledActions.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/tools/carapace-fmt.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/bestPractices/coupledActions.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/tools/carapace-fmt.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-fmt - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/tools/carapace-fmt.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-fmt"><a class="header" href="#carapace-fmt">carapace-fmt</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/tools.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-lint.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/tools.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-lint.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-generate - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/tools/carapace-generate.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-generate"><a class="header" href="#carapace-generate">carapace-generate</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/tools/carapace-parse.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../release_notes.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/tools/carapace-parse.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../release_notes.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-lint - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/tools/carapace-lint.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-lint"><a class="header" href="#carapace-lint">carapace-lint</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/tools/carapace-fmt.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-parse.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/tools/carapace-fmt.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-parse.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-parse - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../../favicon.svg">
<link rel="shortcut icon" href="../../favicon.png">
<link rel="stylesheet" href="../../css/variables.css">
<link rel="stylesheet" href="../../css/general.css">
<link rel="stylesheet" href="../../css/chrome.css">
<link rel="stylesheet" href="../../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../../highlight.css">
<link rel="stylesheet" href="../../tomorrow-night.css">
<link rel="stylesheet" href="../../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../../asciinema/asciinema-player.css">
<link rel="stylesheet" href="../.././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/tools/carapace-parse.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-parse"><a class="header" href="#carapace-parse">carapace-parse</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../../development/tools/carapace-lint.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-generate.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../../development/tools/carapace-lint.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../../development/tools/carapace-generate.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../../elasticlunr.min.js"></script>
<script src="../../mark.min.js"></script>
<script src="../../searcher.js"></script>
<script src="../../clipboard.min.js"></script>
<script src="../../highlight.js"></script>
<script src="../../book.js"></script>
<!-- Custom JS scripts -->
<script src="../../asciinema/asciinema-player.min.js"></script>
<script src="../../asciinema/load.js"></script>
</div>
</body>
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Updating Completers - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/development/updatingCompleters.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="updating-completers"><a class="header" href="#updating-completers">Updating Completers</a></h1>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../development/creatingCompleters/examples.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/bestPractices.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../development/creatingCompleters/examples.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../development/bestPractices.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

10
elasticlunr.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

22
favicon.svg Normal file
View File

@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 199.7 184.2">
<style>
@media (prefers-color-scheme: dark) {
svg { fill: white; }
}
</style>
<path d="M189.5,36.8c0.2,2.8,0,5.1-0.6,6.8L153,162c-0.6,2.1-2,3.7-4.2,5c-2.2,1.2-4.4,1.9-6.7,1.9H31.4c-9.6,0-15.3-2.8-17.3-8.4
c-0.8-2.2-0.8-3.9,0.1-5.2c0.9-1.2,2.4-1.8,4.6-1.8H123c7.4,0,12.6-1.4,15.4-4.1s5.7-8.9,8.6-18.4l32.9-108.6
c1.8-5.9,1-11.1-2.2-15.6S169.9,0,164,0H72.7c-1,0-3.1,0.4-6.1,1.1l0.1-0.4C64.5,0.2,62.6,0,61,0.1s-3,0.5-4.3,1.4
c-1.3,0.9-2.4,1.8-3.2,2.8S52,6.5,51.2,8.1c-0.8,1.6-1.4,3-1.9,4.3s-1.1,2.7-1.8,4.2c-0.7,1.5-1.3,2.7-2,3.7c-0.5,0.6-1.2,1.5-2,2.5
s-1.6,2-2.2,2.8s-0.9,1.5-1.1,2.2c-0.2,0.7-0.1,1.8,0.2,3.2c0.3,1.4,0.4,2.4,0.4,3.1c-0.3,3-1.4,6.9-3.3,11.6
c-1.9,4.7-3.6,8.1-5.1,10.1c-0.3,0.4-1.2,1.3-2.6,2.7c-1.4,1.4-2.3,2.6-2.6,3.7c-0.3,0.4-0.3,1.5-0.1,3.4c0.3,1.8,0.4,3.1,0.3,3.8
c-0.3,2.7-1.3,6.3-3,10.8c-1.7,4.5-3.4,8.2-5,11c-0.2,0.5-0.9,1.4-2,2.8c-1.1,1.4-1.8,2.5-2,3.4c-0.2,0.6-0.1,1.8,0.1,3.4
c0.2,1.6,0.2,2.8-0.1,3.6c-0.6,3-1.8,6.7-3.6,11c-1.8,4.3-3.6,7.9-5.4,11c-0.5,0.8-1.1,1.7-2,2.8c-0.8,1.1-1.5,2-2,2.8
s-0.8,1.6-1,2.5c-0.1,0.5,0,1.3,0.4,2.3c0.3,1.1,0.4,1.9,0.4,2.6c-0.1,1.1-0.2,2.6-0.5,4.4c-0.2,1.8-0.4,2.9-0.4,3.2
c-1.8,4.8-1.7,9.9,0.2,15.2c2.2,6.2,6.2,11.5,11.9,15.8c5.7,4.3,11.7,6.4,17.8,6.4h110.7c5.2,0,10.1-1.7,14.7-5.2s7.7-7.8,9.2-12.9
l33-108.6c1.8-5.8,1-10.9-2.2-15.5C194.9,39.7,192.6,38,189.5,36.8z M59.6,122.8L73.8,80c0,0,7,0,10.8,0s28.8-1.7,25.4,17.5
c-3.4,19.2-18.8,25.2-36.8,25.4S59.6,122.8,59.6,122.8z M78.6,116.8c4.7-0.1,18.9-2.9,22.1-17.1S89.2,86.3,89.2,86.3l-8.9,0
l-10.2,30.5C70.2,116.9,74,116.9,78.6,116.8z M75.3,68.7L89,26.2h9.8l0.8,34l23.6-34h9.9l-13.6,42.5h-7.1l12.5-35.4l-24.5,35.4h-6.8
l-0.8-35L82,68.7H75.3z"/>
</svg>
<!-- Original image Copyright Dave Gandy — CC BY 4.0 License -->

After

Width:  |  Height:  |  Size: 1.8 KiB

202
fonts/OPEN-SANS-LICENSE.txt Normal file
View File

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -0,0 +1,93 @@
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

100
fonts/fonts.css Normal file
View File

@ -0,0 +1,100 @@
/* Open Sans is licensed under the Apache License, Version 2.0. See http://www.apache.org/licenses/LICENSE-2.0 */
/* Source Code Pro is under the Open Font License. See https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL */
/* open-sans-300 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'),
url('open-sans-v17-all-charsets-300.woff2') format('woff2');
}
/* open-sans-300italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 300;
src: local('Open Sans Light Italic'), local('OpenSans-LightItalic'),
url('open-sans-v17-all-charsets-300italic.woff2') format('woff2');
}
/* open-sans-regular - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans Regular'), local('OpenSans-Regular'),
url('open-sans-v17-all-charsets-regular.woff2') format('woff2');
}
/* open-sans-italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: local('Open Sans Italic'), local('OpenSans-Italic'),
url('open-sans-v17-all-charsets-italic.woff2') format('woff2');
}
/* open-sans-600 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'),
url('open-sans-v17-all-charsets-600.woff2') format('woff2');
}
/* open-sans-600italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: local('Open Sans SemiBold Italic'), local('OpenSans-SemiBoldItalic'),
url('open-sans-v17-all-charsets-600italic.woff2') format('woff2');
}
/* open-sans-700 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'),
url('open-sans-v17-all-charsets-700.woff2') format('woff2');
}
/* open-sans-700italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 700;
src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
url('open-sans-v17-all-charsets-700italic.woff2') format('woff2');
}
/* open-sans-800 - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: local('Open Sans ExtraBold'), local('OpenSans-ExtraBold'),
url('open-sans-v17-all-charsets-800.woff2') format('woff2');
}
/* open-sans-800italic - latin_vietnamese_latin-ext_greek-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: local('Open Sans ExtraBold Italic'), local('OpenSans-ExtraBoldItalic'),
url('open-sans-v17-all-charsets-800italic.woff2') format('woff2');
}
/* source-code-pro-500 - latin_vietnamese_latin-ext_greek_cyrillic-ext_cyrillic */
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 500;
src: url('source-code-pro-v11-all-charsets-500.woff2') format('woff2');
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

83
highlight.css Normal file
View File

@ -0,0 +1,83 @@
/*
* An increased contrast highlighting scheme loosely based on the
* "Base16 Atelier Dune Light" theme by Bram de Haan
* (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)
* Original Base16 color scheme by Chris Kempson
* (https://github.com/chriskempson/base16)
*/
/* Comment */
.hljs-comment,
.hljs-quote {
color: #575757;
}
/* Red */
.hljs-variable,
.hljs-template-variable,
.hljs-attribute,
.hljs-attr,
.hljs-tag,
.hljs-name,
.hljs-regexp,
.hljs-link,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class {
color: #d70025;
}
/* Orange */
.hljs-number,
.hljs-meta,
.hljs-built_in,
.hljs-builtin-name,
.hljs-literal,
.hljs-type,
.hljs-params {
color: #b21e00;
}
/* Green */
.hljs-string,
.hljs-symbol,
.hljs-bullet {
color: #008200;
}
/* Blue */
.hljs-title,
.hljs-section {
color: #0030f2;
}
/* Purple */
.hljs-keyword,
.hljs-selector-tag {
color: #9d00ec;
}
.hljs {
display: block;
overflow-x: auto;
background: #f6f7f6;
color: #000;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
.hljs-addition {
color: #22863a;
background-color: #f0fff4;
}
.hljs-deletion {
color: #b31d28;
background-color: #ffeef0;
}

54
highlight.js Normal file

File diff suppressed because one or more lines are too long

230
index.html Normal file
View File

@ -0,0 +1,230 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>carapace-bin - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/carapace-bin.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="carapace-bin"><a class="header" href="#carapace-bin">carapace-bin</a></h1>
<p><a href="https://github.com/carapace-sh/carapace-bin">carapace-bin</a> is a multi-shell multi-command argument completer based on <a href="https://github.com/carapace-sh/carapace">carapace-sh/carapace</a>.</p>
<p><img src="./opengraph-elvish.png" alt="" /></p>
<p>Supported shells:</p>
<ul>
<li><a href="https://www.gnu.org/software/bash/">Bash</a></li>
<li><a href="https://elv.sh/">Elvish</a></li>
<li><a href="https://fishshell.com/">Fish</a></li>
<li><a href="https://doc.redox-os.org/ion-manual/">Ion</a> (<a href="https://github.com/carapace-sh/carapace/issues/88">experimental</a>)</li>
<li><a href="https://www.nushell.sh/">Nushell</a></li>
<li><a href="http://oils.pub/">Oil</a></li>
<li><a href="https://microsoft.com/powershell">Powershell</a></li>
<li><a href="https://www.tcsh.org/">Tcsh</a> (<a href="https://github.com/carapace-sh/carapace/issues/331">experimental</a>)</li>
<li><a href="https://xon.sh/">Xonsh</a></li>
<li><a href="https://www.zsh.org/">Zsh</a></li>
</ul>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="next prefetch" href="install.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="next prefetch" href="install.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

298
install.html Normal file
View File

@ -0,0 +1,298 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Install - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/install.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="install"><a class="header" href="#install">Install</a></h1>
<h2 id="manually"><a class="header" href="#manually">Manually</a></h2>
<p>Download from <a href="https://github.com/carapace-sh/carapace-bin/releases">releases</a> and add <code>carapace</code> to <a href="https://en.wikipedia.org/wiki/PATH_(variable)">PATH</a>.</p>
<h2 id="aur"><a class="header" href="#aur">AUR</a></h2>
<p>Install <a href="https://aur.archlinux.org/packages/carapace-bin/">carapace-bin</a> from <a href="https://aur.archlinux.org/">AUR</a>.</p>
<pre><code class="language-sh"># e.g. with pamac
pamac install carapace-bin
</code></pre>
<h2 id="deb"><a class="header" href="#deb">DEB</a></h2>
<p>Install from <a href="https://rsteube.fury.site/">fury.io</a></p>
<pre><code class="language-toml"># /etc/apt/sources.list.d/fury.list
deb [trusted=yes] https://apt.fury.io/rsteube/ /
</code></pre>
<pre><code class="language-sh">apt-get update &amp;&amp; apt-get install carapace-bin
</code></pre>
<h2 id="homebrew"><a class="header" href="#homebrew">Homebrew</a></h2>
<p>Install from <a href="https://formulae.brew.sh/formula/carapace">homebrew-core</a></p>
<pre><code class="language-sh">brew install carapace
</code></pre>
<p>Install from <a href="https://github.com/rsteube/homebrew-tap">rsteube/homebrew-tap</a></p>
<pre><code class="language-sh">brew tap rsteube/homebrew-tap
brew install rsteube/tap/carapace
</code></pre>
<h2 id="nix"><a class="header" href="#nix">Nix</a></h2>
<p>Install from <a href="https://search.nixos.org/packages?show=carapace">nixpkgs</a></p>
<pre><code class="language-sh">nix-shell -p carapace
</code></pre>
<h2 id="pkgx"><a class="header" href="#pkgx">PKGX</a></h2>
<p>Install from <a href="https://pkgx.dev/pkgs/carapace.sh/">pkgx.dev</a></p>
<pre><code class="language-sh">pkgx install carapace
</code></pre>
<h2 id="rpm"><a class="header" href="#rpm">RPM</a></h2>
<p>Install from <a href="https://rsteube.fury.site/">fury.io</a></p>
<h3 id="yum"><a class="header" href="#yum">Yum</a></h3>
<pre><code class="language-toml"># /etc/yum.repos.d/fury.repo
[fury]
name=Gemfury Private Repo
baseurl=https://yum.fury.io/rsteube/
enabled=1
gpgcheck=0
</code></pre>
<pre><code class="language-sh">yum install carapace-bin
</code></pre>
<h3 id="zypper"><a class="header" href="#zypper">Zypper</a></h3>
<pre><code class="language-sh">zypper ar --gpgcheck-allow-unsigned -f https://yum.fury.io/rsteube/ carapace
zypper install carapace-bin
</code></pre>
<h2 id="scoop"><a class="header" href="#scoop">Scoop</a></h2>
<p>Install from <a href="https://github.com/ScoopInstaller/Extras">ScoopInstaller/Extras</a> (<strong>recommended</strong>)</p>
<pre><code class="language-sh">scoop bucket add extras
scoop install extras/carapace-bin
</code></pre>
<p>Install from <a href="https://github.com/rsteube/scoop-bucket">rsteube/scoop-bucket</a></p>
<pre><code class="language-sh">scoop bucket add rsteube https://github.com/rsteube/scoop-bucket.git
scoop install carapace-bin
</code></pre>
<h2 id="termux"><a class="header" href="#termux">Termux</a></h2>
<blockquote>
<p><strong>WIP</strong>: repo currently manually created</p>
</blockquote>
<p>Install from <a href="https://github.com/carapace-sh/termux">carapace-sh/termux</a> (gh_pages)</p>
<h3 id="manually-1"><a class="header" href="#manually-1">Manually</a></h3>
<pre><code class="language-sh"># $PREFIX/etc/apt/sources.list.d
deb [trusted=yes] https://termux.carapace.sh termux extras
</code></pre>
<pre><code class="language-sh">apt update &amp;&amp; apt install carapace-bin
</code></pre>
<h3 id="script"><a class="header" href="#script">Script</a></h3>
<pre><code class="language-sh">curl termux.carapace.sh | sh
</code></pre>
<h2 id="winget"><a class="header" href="#winget">Winget</a></h2>
<p>Install from <a href="https://github.com/microsoft/winget-pkgs">winget-pkgs</a></p>
<pre><code class="language-sh">winget install -e --id rsteube.Carapace
</code></pre>
<h2 id="x-cmd"><a class="header" href="#x-cmd">X-CMD</a></h2>
<p>Install from <a href="https://www.x-cmd.com/pkg/carapace-bin">x-cmd.com</a></p>
<pre><code class="language-sh">x env use carapace-bin
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="carapace-bin.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="install/selfupdate.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="carapace-bin.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="install/selfupdate.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

288
install/selfupdate.cast Normal file
View File

@ -0,0 +1,288 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1732975771, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.053031, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[0.053766, "o", "\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.054311, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.054511, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.080709, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.080768, "o", "\u001b[?25l\r\u001b[K\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.96724, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.967679, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.998612, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[0.998756, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[1.066689, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ma\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[1.219862, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mr\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[1.316391, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31ma\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[1.744255, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31mp\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[1.824704, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31ma\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[1.914685, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[0;31mc\u001b[0;m\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[1.974511, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcarapace\u001b[0;m\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[2.067712, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C \r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[2.235677, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C-\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[2.368921, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16C-\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[2.446567, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cv\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[2.534325, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Ce\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[2.663299, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Cr\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[2.865023, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Csion \r\u001b[25C\u001b[?25h"]
[3.435506, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[3.446027, "o", "1.0.7\r\n"]
[3.446128, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[3.446611, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.446857, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.479575, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.480533, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[3.950972, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[4.06995, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[4.093534, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h"]
[4.093655, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[4.18297, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[4.302944, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[4.449998, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[4.681794, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h"]
[4.6824, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[4.772384, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Ca\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[4.959052, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cr\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[4.959438, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[4.959685, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[5.270722, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[K\u001b[0;4mcarapace \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;80;250;123mcarapace \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-lint \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-pro \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec-parse\u001b[0;m \u001b[0;38;2;80;250;123mcargo-clippy\r\ncarapace-bridge \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-log \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-selfupdate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-tabdance \u001b[0;m \u001b[0;38;2;80;250;123mcargo-fmt \r\ncarapace-fmt \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-man \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-shlex \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui \u001b[0;m \u001b[0;38;2;139;233;253mcargo-miri \r\n\u001b[0;38;2;80;250;123mcarapace-generate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-new \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui-plugin \r\ncarapace-gorilla \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-parse\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec-man \u001b[0;m \u001b[0;38;2;80;250;123mcargo \u001b[0;m\u001b[5A\r\u001b[22C\u001b[?25h"]
[5.270956, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[5A\r\u001b[22C\u001b[?25h"]
[5.922441, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[12C\u001b[Kcarapace \r\n\u001b[J\u001b[A\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[6.158947, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[6.165382, "o", "/usr/bin/carapace\r\n"]
[6.165945, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[6.166336, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[6.166413, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[6.167774, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[6.198072, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[7.064982, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mg\u001b[0;m\r\u001b[7C\u001b[?25h"]
[7.177587, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;32mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[7.278227, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[7.374333, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9Ci\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[7.438147, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10Cn\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[7.533511, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cstall \r\u001b[17C\u001b[?25h"]
[7.921082, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[7.921548, "o", "\u001b[?7h\u001b[?2004l\r"]
[9.076243, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[9.076849, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[9.077424, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[9.100068, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[9.100273, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[9.787678, "o", "\u001b[?25l\u001b[1A\rEnd of history\u001b[K\r\n\u001b[K\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[10.124916, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;4;32mgo\u001b[0;4m install \r\n\u001b[0;1;37;45m HISTORY #11652 \u001b[0;m\u001b[1A\r\u001b[17C\u001b[?25h"]
[10.327863, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;4;32mwhich\u001b[0;4m carapace \r\n\u001b[14C\u001b[0;m\u001b[K\u001b[0;1;37;45m1 \u001b[0;m\u001b[1A\r\u001b[21C\u001b[?25h"]
[10.498291, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;4;32mcarapace\u001b[0;4m --version \r\n\u001b[14C\u001b[0;m\u001b[K\u001b[0;1;37;45m0 \u001b[0;m\u001b[1A\r\u001b[25C\u001b[?25h"]
[11.067505, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcarapace\u001b[0;m --version \r\n\u001b[K\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[11.186905, "o", "carapace-bin develop\r\n"]
[11.189072, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[11.189195, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[11.189251, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[11.189972, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[11.213506, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[11.214581, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[11.214664, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[11.215227, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[12.160419, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;4;32mcarapace\u001b[0;4m --version \r\n\u001b[0;1;37;45m HISTORY #11653 \u001b[0;m\u001b[1A\r\u001b[25C\u001b[?25h"]
[12.33046, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;4;32mgo\u001b[0;4m install \r\n\u001b[14C\u001b[0;m\u001b[K\u001b[0;1;37;45m2 \u001b[0;m\u001b[1A\r\u001b[17C\u001b[?25h"]
[13.415257, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;4;32mwhich\u001b[0;4m carapace \r\n\u001b[14C\u001b[0;m\u001b[K\u001b[0;1;37;45m1 \u001b[0;m\u001b[1A\r\u001b[21C\u001b[?25h"]
[14.0212, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m carapace \r\n\u001b[K\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[14.026746, "o", "/home/rsteube/go/bin/carapace\r\n"]
[14.027286, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[14.027727, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[14.02789, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[14.029022, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[14.056038, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[16.393585, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h"]
[16.456787, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ma\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[16.629047, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mr\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[16.72585, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31ma\u001b[0;m\r\u001b[10C\u001b[?25h"]
[16.725968, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[16.905709, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31mp\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[16.98055, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31ma\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[17.011695, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[0;31mc\u001b[0;m\r\u001b[13C\u001b[?25h"]
[17.011888, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[17.064236, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcarapace\u001b[0;m\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[17.172399, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C \r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[17.465304, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C-\r\u001b[16C\u001b[?25h"]
[17.467489, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[17.468341, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[17.468725, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[17.600799, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16C-\r\u001b[17C\u001b[?25h"]
[17.841533, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C\u001b[K\u001b[0;4m--clear-cache \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--clear-cache\u001b[0;2;7m (clear caches) \u001b[0;m --macro\u001b[0;2m (list or execute macros) \r\n\u001b[0;m--codegen\u001b[0;2m (generate code for spec file)\u001b[0;m --run\u001b[0;2m (run spec) \r\n\u001b[0;m--condition\u001b[0;2m (list or execute condition)\u001b[0;m --schema\u001b[0;2m (json schema for spec files) \r\n\u001b[0;m--diff\u001b[0;2m (diff completion) \u001b[0;m --selfupdate\u001b[0;2m (update to nightly/stable)\r\n\u001b[0;m--help\u001b[0;2m (help for carapace) \u001b[0;m --style\u001b[0;2m (set style) \r\n\u001b[0;m--list\u001b[0;2m (list completers) \u001b[0;m --version\u001b[0;2m (version for carapace) \u001b[0;m\u001b[6A\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[6A\r\u001b[22C\u001b[?25h"]
[18.231898, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[22Cs\r\n\u001b[43C\u001b[Krun\u001b[0;2m (run spec) \r\n\u001b[43C\u001b[0;m\u001b[Kschema\u001b[0;2m (json schema for spec files) \r\n\u001b[44C\u001b[0;m\u001b[Kelfupdate\u001b[0;2m (update to nightly/stable)\r\n\u001b[2C\u001b[0;m\u001b[Klist\u001b[0;2m (list completers) \u001b[0;m --style\u001b[0;2m (set style) \r\n\u001b[2C\u001b[0;m\u001b[Kmacro\u001b[0;2m (list or execute macros) \u001b[0;m --version\u001b[0;2m (version for carapace) \u001b[0;m\r\n\u001b[J\u001b[A\u001b[5A\r\u001b[23C\u001b[?25h"]
[18.316336, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[17C\u001b[K\u001b[0;4mselfupdate \r\n\u001b[23C\u001b[0;me\r\n\u001b[2C\u001b[K\u001b[0;7mselfupdate\u001b[0;2;7m (update to nightly/stable)\u001b[0;m --style\u001b[0;2m (set style)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[18.316645, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[19.083392, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[15C\u001b[K--selfupdate \r\n\u001b[J\u001b[A\r\u001b[28C\u001b[?25h"]
[19.083533, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[28C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[28C\u001b[?25h"]
[19.560269, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[28C\u001b[0;4mnightly \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;31mnightly\u001b[0;2;7m (https://github.com/carapace-sh/nightly)\u001b[0;m \u001b[0;32mstable\u001b[0;2m (https://github.com/carapace-sh/carapace-bin)\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[20.236884, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[28C\u001b[Knightly \r\n\u001b[J\u001b[A\r\u001b[36C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[36C\u001b[?25h"]
[20.832557, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[36C2024-11-\r\u001b[44C\u001b[?25h"]
[21.567993, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[36C\u001b[K\u001b[0;4m2024-11-01 \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m2024-11-01\u001b[0;m 2024-11-05 2024-11-09 2024-11-13 2024-11-17 2024-11-21 2024-11-25 2024-11-29\r\n2024-11-02 2024-11-06 2024-11-10 2024-11-14 2024-11-18 2024-11-22 2024-11-26 2024-11-30\r\n2024-11-03 2024-11-07 2024-11-11 2024-11-15 2024-11-19 2024-11-23 2024-11-27\r\n2024-11-04 2024-11-08 2024-11-12 2024-11-16 2024-11-20 2024-11-24 2024-11-28\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.188076, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[45C\u001b[K\u001b[0;4m5 \r\n\r\n\u001b[0;m\u001b[K2024-11-01 \u001b[0;7m2024-11-05\u001b[0;m 2024-11-09 2024-11-13 2024-11-17 2024-11-21 2024-11-25 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.189784, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.190495, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.346673, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[45C\u001b[K\u001b[0;4m9 \r\n\r\n\u001b[12C\u001b[0;m\u001b[K2024-11-05 \u001b[0;7m2024-11-09\u001b[0;m 2024-11-13 2024-11-17 2024-11-21 2024-11-25 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.506234, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[44C\u001b[K\u001b[0;4m13 \r\n\r\n\u001b[24C\u001b[0;m\u001b[K2024-11-09 \u001b[0;7m2024-11-13\u001b[0;m 2024-11-17 2024-11-21 2024-11-25 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.67276, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[45C\u001b[K\u001b[0;4m7 \r\n\r\n\u001b[36C\u001b[0;m\u001b[K2024-11-13 \u001b[0;7m2024-11-17\u001b[0;m 2024-11-21 2024-11-25 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[22.852531, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[44C\u001b[K\u001b[0;4m21 \r\n\r\n\u001b[48C\u001b[0;m\u001b[K2024-11-17 \u001b[0;7m2024-11-21\u001b[0;m 2024-11-25 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[23.036117, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[45C\u001b[K\u001b[0;4m5 \r\n\r\n\u001b[60C\u001b[0;m\u001b[K2024-11-21 \u001b[0;7m2024-11-25\u001b[0;m 2024-11-29\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[23.245057, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[45C\u001b[K\u001b[0;4m9 \r\n\r\n\u001b[72C\u001b[0;m\u001b[K2024-11-25 \u001b[0;7m2024-11-29\r\n\r\n\r\n\u001b[0;m\u001b[4A\r\u001b[22C\u001b[?25h"]
[23.556368, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[44C\u001b[K\u001b[0;4m30 \r\n\r\n\u001b[84C\u001b[0;m\u001b[K2024-11-29\r\n\u001b[84C\u001b[K\u001b[0;7m2024-11-30\r\n\r\n\u001b[0;m\u001b[4A\r\u001b[22C\u001b[?25h"]
[24.345005, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[36C\u001b[K2024-11-30 \r\n\u001b[J\u001b[A\r\u001b[47C\u001b[?25h"]
[24.345679, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[47C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[47C\u001b[?25h"]
[26.004486, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[47Ccarapace-bin_1.0.7-SNAPSHOT-f70f41c0_linux_amd64.tar.gz \r\u001b[103C\u001b[?25h"]
[26.005099, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[103C\u001b[?25h"]
[26.005245, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[103C\u001b[?25h"]
[26.005401, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[103C\u001b[?25h"]
[26.865602, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[27.048294, "o", "\u001b[1;2mdownloading to \"/tmp/carapace-selfupdate_2232929735.tar.gz\"\r\n\u001b[0m"]
[27.052882, "o", " % Total % Received % Xferd Average Speed Time Time Time Current\r\n Dload Upload Total Spent Left Speed\r\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0"]
[27.071608, "o", "\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0"]
[27.345453, "o", "\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r\n"]
[28.070449, "o", "\r 2 11.3M 2 300k 0 0 295k 0 0:00:39 0:00:01 0:00:38 295k"]
[29.070558, "o", "\r 30 11.3M 30 3548k 0 0 1758k 0 0:00:06 0:00:02 0:00:04 3248k"]
[30.069665, "o", "\r 57 11.3M 57 6636k 0 0 2199k 0 0:00:05 0:00:03 0:00:02 3168k"]
[31.07026, "o", "\r 82 11.3M 82 9616k 0 0 2393k 0 0:00:04 0:00:04 --:--:-- 3105k"]
[31.704783, "o", "\r100 11.3M 100 11.3M 0 0 2490k 0 0:00:04 0:00:04 --:--:-- 3105k\r\n"]
[31.709682, "o", "\u001b[1;2mextracting to \"/home/rsteube/go/bin/carapace.selfupdate\"\r\n\u001b[0m"]
[31.715599, "o", "carapace\r\n"]
[31.983908, "o", "\u001b[1;2mexecuting \"/home/rsteube/go/bin/carapace.selfupdate --version\"\r\n\u001b[0m"]
[31.987795, "o", "carapace-bin 1.0.7-SNAPSHOT-f70f41c0 (2024-11-30T01:05:40Z) [f70f41c090c5b73c6bb7a7e92f4685feb6e52261]\r\n"]
[31.988241, "o", "\u001b[1;2moverwrite \"/home/rsteube/go/bin/carapace\"? [y/n]: \u001b[0m"]
[33.589691, "o", "y"]
[33.851332, "o", "\r\n"]
[33.851373, "o", "\u001b[1;2mmoving to \"/home/rsteube/go/bin/carapace\"\r\n\u001b[0m"]
[33.885877, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[33.886288, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[33.88701, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[33.909805, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[35.642296, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[35.693466, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ma\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[35.869493, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mr\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[35.975414, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31ma\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[36.1314, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31mp\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[36.19598, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31ma\u001b[0;m\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[36.259336, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[0;31mc\u001b[0;m\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[36.288052, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcarapace\u001b[0;m\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[36.375088, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C \r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[36.575659, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C-\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[36.714033, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16C-\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[36.794967, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cv\r\u001b[18C\u001b[?25h"]
[36.795131, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[36.91561, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Ce\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[37.024294, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Cr\r\u001b[20C\u001b[?25h"]
[37.025305, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[37.025668, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[37.026334, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[37.026515, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[37.21029, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Cs\r\u001b[21C\u001b[?25h"]
[37.334621, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[21Ci\r\u001b[22C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[22C\u001b[?25h"]
[37.378074, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[22Co\r\u001b[23C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[23C\u001b[?25h"]
[37.422422, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[23Cn\r\u001b[24C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[24C\u001b[?25h"]
[37.618101, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[37.627004, "o", "carapace-bin 1.0.7-SNAPSHOT-f70f41c0 (2024-11-30T01:05:40Z) [f70f41c090c5b73c6bb7a7e92f4685feb6e52261]\r\n"]
[37.627844, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[37.62819, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[37.628523, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[37.628701, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[37.661472, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[37.661563, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[38.386969, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[38.443171, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[38.499872, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[38.58711, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h"]
[38.587369, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[38.650865, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h"]
[38.743231, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h"]
[38.743335, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[38.917651, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[38.985594, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Ca\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[39.142726, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cr\r\u001b[15C\u001b[?25h"]
[39.228419, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Ca\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[39.376628, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Cp\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[39.444121, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Ca\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[39.983953, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Cc\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[40.037364, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Ce\r\u001b[20C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[40.506309, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[40.56636, "o", "/home/rsteube/go/bin/carapace\r\n"]
[40.566972, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[40.567648, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[40.568747, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[40.604123, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[40.604286, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[41.456467, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mr\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[41.560313, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mrm\u001b[0;m\r\u001b[8C\u001b[?25h"]
[41.66409, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[41.928148, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C~\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[42.151463, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C/\r\u001b[11C\u001b[?25h"]
[42.701407, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11Cg\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[42.820022, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Co\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[43.015706, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13C/\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[43.167743, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cb\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[43.286867, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15Ci\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[43.375273, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16Cn\r\u001b[17C\u001b[?25h"]
[43.375372, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[43.535491, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17C/\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[43.746607, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Cc\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[43.798748, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Ca\r\u001b[20C\u001b[?25h"]
[43.798864, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[43.971993, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Cr\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[44.140723, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[K\u001b[0;4m/home/rsteube/go/bin/carapace \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;80;250;123mcarapace \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-gorilla\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-parse \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui-plugin\r\ncarapace-bridge \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-lint \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-pro \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec-parse\r\ncarapace-fmt \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-man \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-selfupdate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-tabdance \r\ncarapace-generate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-new \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-shlex \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui \u001b[0;m\u001b[4A\r\u001b[22C\u001b[?25h"]
[44.99846, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[9C\u001b[K/home/rsteube/go/bin/carapace \r\n\u001b[J\u001b[A\r\u001b[39C\u001b[?25h"]
[44.998642, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[39C\u001b[?25h"]
[45.152672, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[45.170952, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[45.171208, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[45.171911, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[45.201483, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[45.201536, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[46.248989, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31mc\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[46.338278, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31ma\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[46.507423, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mr\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[46.618643, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31ma\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[46.766128, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[10C\u001b[0;31mp\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[46.824547, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C\u001b[0;31ma\u001b[0;m\r\u001b[12C\u001b[?25h"]
[46.824668, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[46.881308, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[0;31mc\u001b[0;m\r\u001b[13C\u001b[?25h"]
[46.881428, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[46.916161, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mcarapace\u001b[0;m\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[47.023322, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14C \r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[47.159535, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[15C-\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[16C\u001b[?25h"]
[47.303331, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[16C-\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[17C\u001b[?25h"]
[47.359714, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[17Cv\r\u001b[18C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[18C\u001b[?25h"]
[47.472837, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[18Ce\r\u001b[19C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[19C\u001b[?25h"]
[47.561808, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[19Cr\r\u001b[20C\u001b[?25h"]
[47.56192, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[20C\u001b[?25h"]
[47.737685, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[20Csion \r\u001b[25C\u001b[?25h"]
[48.183871, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[48.246091, "o", "1.0.7\r\n"]
[48.246785, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[48.247078, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[48.248015, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[48.284237, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[48.284413, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[48.630005, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;32mw\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[48.688349, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;31mwh\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[48.756774, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h"]
[48.756833, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[48.841039, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[9C\u001b[0;31mc\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[48.956037, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mwhich\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[11C\u001b[?25h"]
[49.138447, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[12C\u001b[?25h"]
[49.341946, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[13C\u001b[?25h"]
[49.413058, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[13Ca\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[14C\u001b[?25h"]
[49.553403, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[14Cr\r\u001b[15C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[15C\u001b[?25h"]
[49.798842, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[12C\u001b[K\u001b[0;4mcarapace \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;80;250;123mcarapace \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-lint \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-pro \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec-parse\u001b[0;m \u001b[0;38;2;80;250;123mcargo-clippy\r\ncarapace-bridge \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-log \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-selfupdate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-tabdance \u001b[0;m \u001b[0;38;2;80;250;123mcargo-fmt \r\ncarapace-fmt \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-man \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-shlex \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui \u001b[0;m \u001b[0;38;2;139;233;253mcargo-miri \r\n\u001b[0;38;2;80;250;123mcarapace-generate\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-new \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-ui-plugin \r\ncarapace-gorilla \u001b[0;m \u001b[0;38;2;80;250;123mcarapace-parse\u001b[0;m \u001b[0;38;2;80;250;123mcarapace-spec-man \u001b[0;m \u001b[0;38;2;80;250;123mcargo \u001b[0;m\u001b[5A\r\u001b[22C\u001b[?25h"]
[50.519264, "o", "\u001b[?25l\u001b[2A\r\r\n\u001b[12C\u001b[Kcarapace \r\n\u001b[J\u001b[A\r\u001b[21C\u001b[?25h"]
[50.51975, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[21C\u001b[?25h"]
[50.661048, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h"]
[50.661639, "o", "\u001b[?7h\u001b[?2004l\r"]
[50.667118, "o", "/usr/bin/carapace\r\n"]
[50.667561, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[50.668075, "o", "\u001b[?25l\r\u001b[0;1;36mcarapace-bin/cmd/carapace\u001b[0;m on \u001b[0;1;35m master\u001b[0;m via \u001b[0;1;36m🐹 v1.23.3 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[50.668491, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[50.697255, "o", "\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[6C\u001b[?25h"]
[51.591154, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[7C\u001b[?25h"]
[51.772033, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[8C\u001b[?25h"]
[52.010408, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mt\u001b[0;m\r\u001b[9C\u001b[?25h"]
[52.355242, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[K\r\u001b[8C\u001b[?25h"]
[52.509718, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[9C\u001b[?25h"]
[52.582737, "o", "\u001b[?25l\u001b[1A\r\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[1A\r\r\n\r\u001b[10C\u001b[?25h"]
[52.680623, "o", "\u001b[?25l\u001b[1A\r\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

234
install/selfupdate.html Normal file
View File

@ -0,0 +1,234 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Selfupdate - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/install/selfupdate.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="selfupdate"><a class="header" href="#selfupdate">Selfupdate</a></h1>
<p>With <code>carapace --selfupdate</code> specific <a href="https://github.com/carapace-sh/nightly/releases">nightly</a> or <a href="https://github.com/carapace-sh/carapace-bin/releases">stable</a> releases can be installed.</p>
<p><img src="./selfupdate.cast" alt="" /></p>
<p>Executable is installed to the <a href="https://pkg.go.dev/cmd/go#hdr-Compile_and_install_packages_and_dependencies">GOBIN</a> directory, essentially shadowing any system installation.</p>
<pre><code class="language-sh">export PATH="$HOME/.local/bin:$HOME/go/bin:$PATH"
# │ │ └system installation (e.g. /usr/bin/carapace)
# │ └selfupdate/go based installation ($GOBIN)
# └user binaries
</code></pre>
<h2 id="requirements"><a class="header" href="#requirements">Requirements</a></h2>
<ul>
<li><a href="https://curl.se">curl</a> for downloads</li>
<li><a href="https://en.wikipedia.org/wiki/PATH_(variable)">PATH</a> containing the <a href="https://pkg.go.dev/cmd/go#hdr-Compile_and_install_packages_and_dependencies">GOBIN</a> directory</li>
</ul>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../install.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../setup.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../install.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../setup.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

1
macros-badge.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="82" height="20" role="img" aria-label="macros: 631"><title>macros: 631</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="82" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="51" height="20" fill="#555"/><rect x="51" width="31" height="20" fill="#fe7d37"/><rect width="82" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="265" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="410">macros</text><text x="265" y="140" transform="scale(.1)" fill="#fff" textLength="410">macros</text><text aria-hidden="true" x="655" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="210">631</text><text x="655" y="140" transform="scale(.1)" fill="#fff" textLength="210">631</text></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

7
mark.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
opengraph-elvish.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

183
overlay-command.cast Normal file
View File

@ -0,0 +1,183 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1679008116, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.022539, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h"]
[0.023063, "o", "\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.039784, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.039986, "o", "\u001b[?25l\r\u001b[K\r\n\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!]\u001b[0;m via \u001b[0;1;36m🐹 v1.20 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.96685, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31md\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.96712, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.988484, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.988598, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[1.024602, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mo\u001b[0;m\r\u001b[8C\u001b[?25h"]
[1.174441, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mc\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[1.349097, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[0;31mt\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[1.469418, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mdoctl\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[2.042011, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[12C\u001b[?25h"]
[2.613311, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C\u001b[0;4m1-click \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m1-click\u001b[0;2;7;37m (Display commands that pertain to 1-click applications) \r\n\u001b[0;maccount\u001b[0;2;37m (Display commands that retrieve account details) \r\n\u001b[0;mapps\u001b[0;2;37m (Display commands for working with apps) \r\n\u001b[0;mauth\u001b[0;2;37m (Display commands for authenticating doctl with an account) \r\n\u001b[0;mbalance\u001b[0;2;37m (Display commands for retrieving your account balance) \r\n\u001b[0;mbilling-history\u001b[0;2;37m (Display commands for retrieving your billing history) \r\n\u001b[0;mcompletion\u001b[0;2;37m (Generate the autocompletion script for the specified shell) \r\n\u001b[0;mcompute\u001b[0;2;37m (Display commands that manage infrastructure) \r\n\u001b[0;mdatabases\u001b[0;2;37m (Display commands that manage databases) \r\n\u001b[0;mhelp\u001b[0;2;37m (Help about any command) "]
[2.613431, "o", " \r\n\u001b[0;minvoice\u001b[0;2;37m (Display commands for retrieving invoices for your account) \r\n\u001b[0;mkubernetes\u001b[0;2;37m (Displays commands to manage Kubernetes clusters and configurations)\r\n\u001b[0;mmonitoring\u001b[0;2;37m ([Beta] Display commands to manage monitoring) \r\n\u001b[0;mprojects\u001b[0;2;37m (Manage projects and assign resources to them) \r\n\u001b[0;mregistry\u001b[0;2;37m (Display commands for working with container registries) \r\n\u001b[0;mserverless\u001b[0;2;37m (Develop, test, and deploy serverless functions) \r\n\u001b[0;mversion\u001b[0;2;37m (Show the current version) \r\n\u001b[0;mvpcs\u001b[0;2;37m (Display commands that manage VPCs) \u001b[0;m\u001b[18A\r\u001b[22C\u001b[?25h"]
[4.174036, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[6C\u001b[K\r\n\u001b[J\u001b[A\r\u001b[6C\u001b[?25h"]
[4.174568, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[4.196836, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[4.197002, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[4.622185, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31mh\u001b[0;m\r\u001b[7C\u001b[?25h"]
[4.690073, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mhx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[4.796622, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C \r\u001b[9C\u001b[?25h"]
[5.047289, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C~\r\u001b[10C\u001b[?25h"]
[5.047342, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[5.302539, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[10C/\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[5.459969, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C.\r\u001b[12C\u001b[?25h"]
[5.460028, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[12C\u001b[?25h"]
[6.06615, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[13C\u001b[?25h"]
[6.149212, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[13Co\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[14C\u001b[?25h"]
[6.235801, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[14Cn\r\u001b[15C\u001b[?25h"]
[6.23605, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[15C\u001b[?25h"]
[6.236496, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[15C\u001b[?25h"]
[6.236554, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[15C\u001b[?25h"]
[6.385795, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[15Cf\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[16C\u001b[?25h"]
[6.538651, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[16Ci\r\u001b[17C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[17C\u001b[?25h"]
[6.715153, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[K\u001b[0;4m/home/rsteube/.config/\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;189;147;249m.config/\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[7.291438, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[9C\u001b[K/home/rsteube/.config/\r\n\u001b[J\u001b[A\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[8.092499, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[31Cc\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[32C\u001b[?25h"]
[8.125727, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[32Ca\r\u001b[33C\u001b[?25h"]
[8.126058, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[33C\u001b[?25h"]
[8.300006, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[33Cr\r\u001b[34C\u001b[?25h"]
[8.403008, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[34Ca\r\u001b[35C\u001b[?25h"]
[8.403348, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[35C\u001b[?25h"]
[8.535945, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[35Cp\r\u001b[36C\u001b[?25h"]
[8.536126, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[36C\u001b[?25h"]
[8.72414, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[36Cace/\r\u001b[40C\u001b[?25h"]
[10.004661, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[40Co\r\u001b[41C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[41C\u001b[?25h"]
[10.136162, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[41Cv\r\u001b[42C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[42C\u001b[?25h"]
[10.253454, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[42Ce\r\u001b[43C\u001b[?25h"]
[10.253527, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[43C\u001b[?25h"]
[10.33027, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[43Cr\r\u001b[44C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[44C\u001b[?25h"]
[10.535595, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[44Clays/\r\u001b[49C\u001b[?25h"]
[11.03135, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[49Cd\r\u001b[50C\u001b[?25h"]
[11.031671, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[50C\u001b[?25h"]
[11.104223, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[50Co\r\u001b[51C\u001b[?25h"]
[11.104297, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[51C\u001b[?25h"]
[11.238852, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[51Cc\r\u001b[52C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[52C\u001b[?25h"]
[11.425066, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[52Ct\r\u001b[53C\u001b[?25h"]
[11.425159, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[53C\u001b[?25h"]
[11.541825, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[53Cl\r\u001b[54C\u001b[?25h"]
[11.542001, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h"]
[11.542444, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h"]
[11.542647, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h"]
[11.756257, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[54C.\r\u001b[55C\u001b[?25h"]
[11.97217, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55Cy\r\u001b[56C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[56C\u001b[?25h"]
[12.058061, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[56Ca\r\u001b[57C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[57C\u001b[?25h"]
[12.279633, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[57Cm\r\u001b[58C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[58C\u001b[?25h"]
[12.341939, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[58Cl\r\u001b[59C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[59C\u001b[?25h"]
[12.578694, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[12.609811, "o", "\u001b[?1049h\u001b[?2004h\u001b[?1004h\u001b[2J"]
[12.610136, "o", "\u001b[1;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;180;190;254m 1\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;245;224;220m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;1H \u001b[38;2;69;71;90m ~\u001b[38;2;205;214;244m \u001b[3;1H \u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[12.610177, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[12.610204, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H\u001b[38;2;127;132;156m\u001b[48;2;49;50;68m NOR ~/.config/carapace/overlays/doctl.yaml 1 sel 1:1 \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mLoaded 1 files. \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[12.840848, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[13.05016, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[13.179002, "o", "\u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;49;50;68m┌Space─────────────────────────────────────────────┐\u001b[2;57H│ f Open file picker │\u001b[3;57H│ F Open file picker at current working directory │\u001b[4;57H│ b Open buffer picker │\u001b[5;57H│ j Open jumplist picker │\u001b[6;57H│ s Open symbol picker │\u001b[7;57H│ S Open workspace symbol picker │\u001b[8;57H│ d Open diagnostic picker │\u001b[9;57H│ D Open workspace diagnostic picker │\u001b[10;57H│ a Perform code action │\u001b[11;57H│ ' Open last picker │\u001b[12;57H│ g Debug (experimental) │\u001b[13;57H│ w Window │\u001b[14;57H│ y Join and yank selections to clipboard │\u001b[15;57H│ "]
[13.17907, "o", "Y Yank main selection to clipboard │\u001b[16;57H│ p Paste clipboard after selections │\u001b[17;57H│ P Paste clipboard before selections │\u001b[18;57H│ R Replace selections by clipboard content │\u001b[19;57H│ / Global search in workspace folder │\u001b[20;57H│ k Show docs for item under cursor │\u001b[21;57H│ r Rename symbol │\u001b[22;57H│ h Select symbol references │\u001b[23;57H│ ? Open command palette │\u001b[24;1H\u001b[48;2;30;30;46m \u001b[24;8H \u001b[24;10H \u001b[24;57H\u001b[48;2;49;50;68m└────────────────────────────────────<space>───────┘\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[13.49941, "o", "\u001b[1;3H\u001b[38;2;69;71;90m\u001b[48;2;30;30;46m16\u001b[1;7H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;3H\u001b[38;2;69;71;90m15\u001b[2;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mauth\u001b[38;2;108;112;134m \u001b[2;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[3;3H\u001b[38;2;69;71;90m14\u001b[3;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommands\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mfor\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mauthenticating\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mdoctl\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mwith\u001b[38;2;108;112;134m \u001b[38;2;166;227;161man\u001b[38;2;108;112;134m \u001b[38;2;166;227;161maccount\u001b[38;2;108;11"]
[13.499449, "o", "2;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[4;3H\u001b[38;2;69;71;90m13\u001b[4;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mgroup\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mmanagement\u001b[38;2;108;112;134m \u001b[4;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[5;3H\u001b[38;2;69;71;90m12\u001b[5;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[5;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[6;3H\u001b[38;2;69;71;90m11\u001b[6;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcompute\u001b[38;2;108;112;134m \u001b[6;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[7;3H\u001b[38;2;69;71;90m10\u001b[7;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcomma"]
[13.499463, "o", "nds\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mthat\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mmanage\u001b[38;2;108;112;134m \u001b[38;2;166;227;161minfrastructure\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[8;3H\u001b[38;2;69;71;90m 9\u001b[8;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mgroup\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcore\u001b[38;2;108;112;134m \u001b[8;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[9;3H\u001b[38;2;69;71;90m 8\u001b[9;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[9;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[10;3H\u001b[38;2;69;71;90m 7\u001b[10;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcustom\u001b[38;2;108;112;134m \u001b[10;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[11;3H\u001b[38;2;69;71;90m 6\u001b[11;7H\u001b[38;2;108"]
[13.499475, "o", ";112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcustom\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommand\u001b[38;2;108;112;134m \u001b[11;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[12;3H\u001b[38;2;69;71;90m 5\u001b[12;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mgroup\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcustom\u001b[38;2;108;112;134m \u001b[12;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[13;3H\u001b[38;2;69;71;90m 4\u001b[13;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mflags\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[13;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[14;3H\u001b[38;2;69;71;90m 3\u001b[14;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213m-h,\u001b[38;2;108;112;134m \u001b[38;2;148;226;213m--help\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mshow\u001b[38;2;108;112;134m \u001b[38;2;166;"]
[13.499636, "o", "227;161mhelp\u001b[38;2;108;112;134m \u001b[14;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[15;3H\u001b[38;2;69;71;90m 2\u001b[15;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[15;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;3H\u001b[38;2;69;71;90m 1\u001b[16;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mpositional\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[16;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[17;3H\u001b[38;2;180;190;254m18\u001b[17;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161mone\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mtwo\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mthree\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m\u001b[48;2;245;224;220m \u001b[17;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m "]
[13.499679, "o", " \u001b[18;3H\u001b[38;2;69;71;90m 1\u001b[18;7H\u001b[38;2;108;112;134m \u001b[18;57H\u001b[38;2;205;214;244m \u001b[19;3H\u001b[38;2;69;71;90m ~\u001b[19;57H\u001b[38;2;205;214;244m \u001b[20;57H \u001b[21;57H \u001b[22;57H \u001b[23;46H\u001b[38;2;127;132;156m\u001b[48;2;49;50;68m[+]\u001b[23;57H 1 sel 18:28 \u001b[24;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;34H\u001b[?25l"]
[13.708308, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;34H\u001b[?25l"]
[14.53777, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;34H\u001b[?25l"]
[14.94922, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;34H\u001b[?25l"]
[14.95081, "o", "\u001b[14;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mquit buffer-previous write-quit! \u001b[15;1Hquit! write write-all \u001b[16;1Hopen write! write-quit-all \u001b[17;1Hbuffer-close new write-quit-all! \u001b[18;1Hbuffer-close! format quit-all \u001b[19;1Hbuffer-close-others indent-style quit-all! \u001b[20;1Hbuffer-close-others! line-ending cquit \u001b[21;1Hbuffer-close-all earlier cquit! \u001b[22;1Hbuffer-close-all! later "]
[14.950825, "o", " theme \u001b[23;1Hbuffer-next write-quit clipboard-yank \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m:\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;2H\u001b[?25h\u001b[2 q"]
[15.244438, "o", "\u001b[14;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;69;71;90m 3\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213m-h,\u001b[38;2;108;112;134m \u001b[38;2;148;226;213m--help\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mshow\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mhelp\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[15;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌────────────────────────────────────────────────────────────────────────────────────────┐\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Write\u001b[16;9Hchanges\u001b[16;17Hto\u001b[16;20Hdisk.\u001b[16;26HAccepts\u001b[16;34Han\u001b[16;37Hoptional\u001b[16;46Hpath\u001b[16;51H(:write\u001b[16;59Hsome/path.txt) \u001b[16;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;3"]
[15.244474, "o", "0;46m \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases: w\u001b[17;37H \u001b[17;73H \u001b[17;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[18;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[19;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mwrit\u001b[19;6H \u001b[19;37Hwrite-quit-all\u001b[19;73Hshow\u001b[19;78Hdirectory\u001b[20;1Hwrit\u001b[20;6H! \u001b[20;37Hwrite-qu\u001b[20;46Ht-all!\u001b[20;73Hvsplit-new\u001b[21;1Hwrit\u001b[21;6H-quit \u001b[21;37Hlsp-wo\u001b[21;44Hkspace-command\u001b[21;73Hhsplit-new\u001b[22;1Hwrit\u001b[22;6H-quit! \u001b[22;37Hnew \u001b[22;73Hreflow\u001b[23;1Hwrit\u001b[23;6H-all \u001b[23;37Hshow-clipboard-provider\u001b[23;73H \u001b[24;2H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mw\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24"]
[15.244484, "o", ";3H\u001b[?25h\u001b[2 q"]
[15.307297, "o", "\u001b[15;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;69;71;90m 2\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;1H \u001b[38;2;69;71;90m 1\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mpositional\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌────────────────────────────────────────────────────────────────────────────────────────┐\u001b[18;1H│ Write changes to disk and close the current view. Accepts an optional path (:wq │\u001b[19;1H│ some/path.txt)\u001b[19;37H \u001b[19;73H "]
[15.30736, "o", " \u001b[19;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[20;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases:\u001b[20;12Hwq,\u001b[20;16Hx\u001b[20;37H \u001b[20;73H \u001b[20;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[21;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[22;11H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m \u001b[22;37Hwrite-quit-all\u001b[22;73H \u001b[23;7Hquit!\u001b[23;37Hwrite-quit-\u001b[23;49Hll! \u001b[24;3H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mq\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;4H\u001b[?25h\u001b[2 q"]
[16.274248, "o", "\u001b[?25h\u001b[2 q\u001b[0 q\u001b[?1006l\u001b[?1015l\u001b[?1003l\u001b[?1002l\u001b[?1000l\u001b[?2004l\u001b[?1004l\u001b[?1049l"]
[16.282662, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[16.282789, "o", "\u001b[?25l\r\r\n\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!]\u001b[0;m via \u001b[0;1;36m🐹 v1.20 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[16.283001, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[16.304273, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[17.161656, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31md\u001b[0;m\r\u001b[7C\u001b[?25h"]
[17.162022, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[17.291176, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[17.395853, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mc\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[17.605968, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[0;31mt\u001b[0;m\r\u001b[10C\u001b[?25h"]
[17.606188, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[17.729145, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mdoctl\u001b[0;m\r\u001b[11C\u001b[?25h"]
[17.729446, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[18.496586, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C \r\u001b[12C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[12C\u001b[?25h"]
[18.905505, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C\u001b[0;4m1-click \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m1-click\u001b[0;2;7;37m (Display commands that pertain to 1-click applications) \r\n\u001b[0;maccount\u001b[0;2;37m (Display commands that retrieve account details) \r\n\u001b[0;mapps\u001b[0;2;37m (Display commands for working with apps) \r\n\u001b[0;34mauth\u001b[0;2;37m (Display commands for authenticating doctl with an account) \r\n\u001b[0;mbalance\u001b[0;2;37m (Display commands for retrieving your account balance) \r\n\u001b[0;mbilling-history\u001b[0;2;37m (Display commands for retrieving your billing history) \r\n\u001b[0;mcompletion\u001b[0;2;37m (Generate the autocompletion script for the specified shell) \r\n\u001b[0;33mcompute\u001b[0;2;37m (Display commands that manage infrastructure) \r\n\u001b[0;35mcustom\u001b[0;2;37m (custom command) \r\n\u001b[0;mdatabases\u001b[0;2;37m (Display commands that manage databases) "]
[18.905547, "o", " \r\n\u001b[0;mhelp\u001b[0;2;37m (Help about any command) \r\n\u001b[0;minvoice\u001b[0;2;37m (Display commands for retrieving invoices for your account) \r\n\u001b[0;mkubernetes\u001b[0;2;37m (Displays commands to manage Kubernetes clusters and configurations)\r\n\u001b[0;mmonitoring\u001b[0;2;37m ([Beta] Display commands to manage monitoring) \r\n\u001b[0;mprojects\u001b[0;2;37m (Manage projects and assign resources to them) \r\n\u001b[0;mregistry\u001b[0;2;37m (Display commands for working with container registries) \r\n\u001b[0;mserverless\u001b[0;2;37m (Develop, test, and deploy serverless functions) \r\n\u001b[0;mversion\u001b[0;2;37m (Show the current version) \r\n\u001b[0;mvpcs\u001b[0;2;37m (Display commands that manage VPCs) \u001b[0;m\u001b[19A\r\u001b[22C\u001b[?25h"]
[19.768349, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\u001b[22Cc\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[19A\r\u001b[23C\u001b[?25h"]
[19.768749, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[19A\r\u001b[23C\u001b[?25h"]
[19.879192, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[12C\u001b[K\u001b[0;4mcustom \r\n\u001b[23C\u001b[0;mu\r\n\u001b[K\u001b[0;7;35mcustom\u001b[0;2;7;37m (custom command)\u001b[0;m version\u001b[0;2;37m (Show the current version)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[19.879513, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[20.924999, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[12C\u001b[Kcustom \r\n\u001b[J\u001b[A\r\u001b[19C\u001b[?25h"]
[20.925081, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[19C\u001b[?25h"]
[21.500146, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[19C\u001b[0;4mLICENSE \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;255;184;108mLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \r\n\u001b[0;38;2;255;184;108mREADME.md \u001b[0;m \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\r\n\u001b[0;38;2;189;147;249mcmd/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml \u001b[0;m one three \r\n\u001b[0;38;2;189;147;249mcompleters/\u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m \u001b[0;38;2;241;250;140mout.gif\u001b[0;m two \u001b[4A\r\u001b[22C\u001b[?25h"]
[22.929367, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[19C\u001b[K\u001b[0;4mREADME.md \r\n\r\n\u001b[0;m\u001b[K\u001b[0;38;2;255;184;108mLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \r\n\u001b[0;m\u001b[K\u001b[0;7;38;2;255;184;108mREADME.md \u001b[0;m \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\r\n\r\n\u001b[0;m\u001b[4A\r\u001b[22C\u001b[?25h"]
[23.397477, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[19C\u001b[K\u001b[0;4mcompleters/\r\n\u001b[22C\u001b[0;mo\r\n\u001b[K\u001b[0;7;38;2;189;147;249mcompleters/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml\u001b[0;m \u001b[0;38;2;255;184;108mgo.mod\u001b[0;m one \u001b[0;38;2;255;184;108mstaticcheck.conf\r\n\u001b[0;m\u001b[K\u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.sum\u001b[0;m \u001b[0;38;2;241;250;140mout.gif\u001b[0;m two \r\n\u001b[J\u001b[A\u001b[2A\r\u001b[23C\u001b[?25h"]
[23.397647, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\u001b[2A\r\u001b[23C\u001b[?25h"]
[23.678153, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[19C\u001b[K\u001b[0;4mone \r\n\u001b[23C\u001b[0;mn\r\n\u001b[K\u001b[0;7mone\u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[23.678191, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[24.531991, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[19C\u001b[Kone \r\n\u001b[J\u001b[A\r\u001b[23C\u001b[?25h"]
[24.532186, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[23C\u001b[?25h"]
[25.359986, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[23C-\r\u001b[24C\u001b[?25h"]
[25.360135, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[24C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[24C\u001b[?25h"]
[25.485243, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[23C\u001b[K\u001b[0;4m--help \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--help\u001b[0;2;7;37m (show help)\u001b[0;m -h\u001b[0;2;37m (show help)\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[26.393122, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[23C\u001b[K--help \r\n\u001b[J\u001b[A\r\u001b[30C\u001b[?25h"]
[27.427469, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\r\u001b[6C\u001b[?25h"]
[27.427802, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[27.431002, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[27.45126, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[27.451464, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[27.713966, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31mz\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[27.842823, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31ms\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[28.008298, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mzsh\u001b[0;m\r\u001b[9C\u001b[?25h"]
[28.00883, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[28.009284, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[28.009541, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[28.009736, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[28.166865, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[28.202707, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[28.218906, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[1;36mcarapace-bin\u001b[0m on \u001b[1;35m \u001b[0m\u001b[1;35mmaster\u001b[0m \u001b[1;31m[\u001b[0m\u001b[1;31m✘\u001b[0m\u001b[1;31m!\u001b[0m\u001b[1;31m]\u001b[0m via \u001b[1;36m🐹 \u001b[0m\u001b[1;36mv1.20\u001b[0m\u001b[1;36m \u001b[0m\r\n\u001b[1;37mzsh\u001b[0m \u001b[1;32m\u001b[0m \u001b[K\u001b[?2004h"]
[28.604582, "o", "d"]
[28.679719, "o", "\bdo"]
[28.752621, "o", "c"]
[28.947233, "o", "t"]
[28.992263, "o", "l"]
[29.449743, "o", " "]
[29.819406, "o", "\u0007\r\r\n\u001b[0m\u001b[m1-click\u001b[0m\u001b[2;37m -- Display commands that pertain to 1-click applications\u001b[0m\r\n\u001b[maccount\u001b[0m\u001b[2;37m -- Display commands that retrieve account details\u001b[0m\r\n\u001b[mapps\u001b[0m\u001b[2;37m -- Display commands for working with apps\u001b[0m\r\n\u001b[mbalance\u001b[0m\u001b[2;37m -- Display commands for retrieving your account balance\u001b[0m\r\n\u001b[mbilling-history\u001b[0m\u001b[2;37m -- Display commands for retrieving your billing history\u001b[0m\r\n\u001b[mcompletion\u001b[0m\u001b[2;37m -- Generate the autocompletion script for the specified shell\u001b[0m\r\n\u001b[mdatabases\u001b[0m\u001b[2;37m -- Display commands that manage databases\u001b[0m\r\n\u001b[mhelp\u001b[0m\u001b[2;37m -- Help about any command\u001b[0m\r\n\u001b[minvoice\u001b[0m\u001b[2;37m -- Display commands for retrieving invoices for your account\u001b[0m\r\n\u001b[mkubernetes\u001b[0m\u001b[2;37m -- Displays commands to manage Kubernetes clusters and configurations\u001b[0m\r\n\u001b[mmonitoring\u001b[0m\u001b[2;37m -- [Beta] Display commands to manage monitoring\u001b[0m\r\n\u001b[mprojects\u001b[0m\u001b[2;37m -- Manage projects "]
[29.819439, "o", "and assign resources to them\u001b[0m\r\n\u001b[mregistry\u001b[0m\u001b[2;37m -- Display commands for working with container registries\u001b[0m\r\n\u001b[mserverless\u001b[0m\u001b[2;37m -- Develop, test, and deploy serverless functions\u001b[0m\r\n\u001b[mversion\u001b[0m\u001b[2;37m -- Show the current version\u001b[0m\r\n\u001b[mvpcs\u001b[0m\u001b[2;37m -- Display commands that manage VPCs\u001b[0m\r\n\u001b[2;37mCompleting core commands\u001b[m\r\n\u001b[0m\u001b[33mcompute\u001b[0m\u001b[2;37m -- Display commands that manage infrastructure\u001b[0m\r\n\u001b[2;37mCompleting custom commands\u001b[m\r\n\u001b[0m\u001b[35mcustom\u001b[0m\u001b[2;37m -- custom command\u001b[0m\r\n\u001b[2;37mCompleting management commands\u001b[m\r\n\u001b[J\u001b[0m\u001b[34mauth\u001b[0m\u001b[2;37m -- Display commands for authenticating doctl with an account\u001b[0m\u001b[J\u001b[22A\u001b[0m\u001b[27m\u001b[24m\r\u001b[6Cdoctl\u001b[K\u001b[1C"]
[30.99443, "o", "c"]
[31.041389, "o", "o"]
[31.148732, "o", "m"]
[31.737304, "o", "\b \b"]
[31.910453, "o", "\b \b"]
[32.06214, "o", "\b \b"]
[32.454382, "o", "o"]
[32.648254, "o", "\u0007\r\r\n\u001b[J\u001bM\u001b[13C"]
[33.169661, "o", "\b \b"]
[33.274916, "o", "c"]
[33.356261, "o", "o"]
[33.498719, "o", "mp"]
[34.02412, "o", "\u0007\r\r\n\u001b[J\u001b[0m\u001b[mcompletion\u001b[0m\u001b[2;37m -- Generate the autocompletion script for the specified shell\u001b[0m\r\n\u001b[2;37mCompleting core commands\u001b[m\r\n\u001b[J\u001b[0m\u001b[33mcompute\u001b[0m\u001b[2;37m -- Display commands that manage infrastructure\u001b[0m\u001b[J\u001bM\u001bM\u001bM\u001b[0m\u001b[27m\u001b[24m\r\u001b[6Cdoctl comp\u001b[K"]
[35.611739, "o", "\u001b[?2004l\r\r\n\u001b[J"]
[35.611953, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
[35.631727, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\r\n\u001b[1;36mcarapace-bin\u001b[0m on \u001b[1;35m \u001b[0m\u001b[1;35mmaster\u001b[0m \u001b[1;31m[\u001b[0m\u001b[1;31m✘\u001b[0m\u001b[1;31m!\u001b[0m\u001b[1;31m]\u001b[0m via \u001b[1;36m🐹 \u001b[0m\u001b[1;36mv1.20\u001b[0m\u001b[1;36m \u001b[0m\r\n\u001b[1;37mzsh\u001b[0m \u001b[1;31m\u001b[0m \u001b[K\u001b[?2004h"]
[36.188453, "o", "e"]
[36.36773, "o", "\bex"]
[36.496066, "o", "i"]
[36.559023, "o", "t"]
[36.651089, "o", "\u001b[?2004l\r\r\n"]
[36.652533, "o", "Exception: \u001b[31;1mzsh exited with 130\u001b[m\r\n[tty 2]:1:1: \u001b[1;4mzsh\u001b[m\r\n"]
[36.655452, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[36.655612, "o", "\u001b[?25l\r\r\n\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[✘!]\u001b[0;m via \u001b[0;1;36m🐹 v1.20 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[36.655893, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[36.673985, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[36.87913, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h"]
[37.038439, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h"]
[37.038483, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[37.191771, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[37.244226, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h"]
[37.336457, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

230
overlay-flag.cast Normal file
View File

@ -0,0 +1,230 @@
{"version": 2, "width": 108, "height": 24, "timestamp": 1678978362, "env": {"SHELL": "elvish", "TERM": "tmux-256color"}}
[0.055076, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[0.055472, "o", "\u001b[?25l\r???> ???> \r\u001b[5C\u001b[?25h\u001b[?25l\r\u001b[5C\u001b[K\r\u001b[5C\u001b[?25h"]
[0.07135, "o", "\u001b[?25l\r\r\u001b[5C\u001b[?25h"]
[0.071432, "o", "\u001b[?25l\r\u001b[K\r\n\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[!?]\u001b[0;m via \u001b[0;1;36m🐹 v1.20 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h"]
[0.796192, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31md\u001b[0;m\r\u001b[7C\u001b[?25h"]
[0.796478, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.813228, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.813393, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[0.901818, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mo\u001b[0;m\r\u001b[8C\u001b[?25h"]
[0.901905, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[1.031672, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mc\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[1.032046, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[1.245994, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[0;31mt\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[1.337971, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mdoctl\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[2.045512, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C \r\u001b[12C\u001b[?25h"]
[2.401506, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C-\r\u001b[13C\u001b[?25h"]
[2.401572, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[13C\u001b[?25h"]
[2.868698, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C\u001b[K\u001b[0;4m--access-token \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--access-token\u001b[0;2;7;37m (API V2 access token) \r\n\u001b[0;m--api-url\u001b[0;2;37m (Override default API endpoint) \r\n\u001b[0;m--config\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[0;m--context\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[0;m--interactive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[0;m--output\u001b[0;2;37m (Desired output format [text|json]) \r\n\u001b[0;m--trace\u001b[0;2;37m (Show a log of network activity while performing a command) \r\n\u001b[0;m--verbose\u001b[0;2;37m (Enable verbose output) \r\n\u001b[0;m-c\u001b[0;2;37m (Specify a custom con"]
[2.868723, "o", "fig file) \r\n\u001b[0;m-o\u001b[0;2;37m (Desired output format [text|json]) \r\n\u001b[0;m-t\u001b[0;2;37m (API V2 access token) \r\n\u001b[0;m-u\u001b[0;2;37m (Override default API endpoint) \r\n\u001b[0;m-v\u001b[0;2;37m (Enable verbose output) \u001b[0;m\u001b[13A\r\u001b[22C\u001b[?25h"]
[3.734849, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\u001b[22Co\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[13A\r\u001b[23C\u001b[?25h"]
[3.826626, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[14C\u001b[K\u001b[0;4moutput \r\n\u001b[23C\u001b[0;mu\r\n\u001b[2C\u001b[K\u001b[0;7moutput\u001b[0;2;7;37m (Desired output format [text|json])\u001b[0;m -o\u001b[0;2;37m (Desired output format [text|json])\r\n\u001b[2C\u001b[0;m\u001b[Kverbose\u001b[0;2;37m (Enable verbose output) \u001b[0;m -v\u001b[0;2;37m (Enable verbose output) \u001b[0;m\r\n\u001b[J\u001b[A\u001b[2A\r\u001b[24C\u001b[?25h"]
[4.419213, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[12C\u001b[K--output \r\n\u001b[J\u001b[A\r\u001b[21C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[21C\u001b[?25h"]
[4.680126, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[21C\u001b[0;4mLICENSE \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;255;184;108mLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcompleters/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml\u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\r\nREADME.md\u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m \u001b[0;38;2;241;250;140mout.gif\r\n\u001b[0;38;2;189;147;249mcmd/ \u001b[0;m \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \u001b[0;m\u001b[3A\r\u001b[22C\u001b[?25h"]
[5.733743, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[21C\u001b[KLICENSE \r\n\u001b[J\u001b[A\r\u001b[29C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[29C\u001b[?25h"]
[7.098094, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[29Cc\r\u001b[30C\u001b[?25h"]
[7.098152, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[30C\u001b[?25h"]
[7.155388, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[30Co\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[7.239547, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[31Cm\r\u001b[32C\u001b[?25h"]
[7.239629, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[32C\u001b[?25h"]
[7.512369, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[32Cp\r\u001b[33C\u001b[?25h"]
[8.133043, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[29C\u001b[K\u001b[0;4mcompletion \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mcompletion\u001b[0;2;7;37m (Generate the autocompletion script for the specified shell)\r\n\u001b[0;mcompute\u001b[0;2;37m (Display commands that manage infrastructure) \u001b[0;m\u001b[2A\r\u001b[22C\u001b[?25h"]
[8.806773, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[33C\u001b[K\u001b[0;4mute \r\n\r\n\u001b[0;m\u001b[Kcompletion\u001b[0;2;37m (Generate the autocompletion script for the specified shell)\r\n\u001b[0;m\u001b[K\u001b[0;7mcompute\u001b[0;2;7;37m (Display commands that manage infrastructure) \u001b[0;m\u001b[2A\r\u001b[22C\u001b[?25h"]
[9.096129, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[29C\u001b[Kcompute \r\n\u001b[J\u001b[A\r\u001b[37C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[37C\u001b[?25h"]
[9.73665, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[37Cr\r\u001b[38C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[38C\u001b[?25h"]
[9.818587, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[38Ce\r\u001b[39C\u001b[?25h"]
[9.818675, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[39C\u001b[?25h"]
[9.964683, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[39Cg\r\u001b[40C\u001b[?25h"]
[9.964872, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[40C\u001b[?25h"]
[10.220637, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[40Cion \r\u001b[44C\u001b[?25h"]
[10.941144, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[44Clist \r\u001b[49C\u001b[?25h"]
[12.093443, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[49C-\r\u001b[50C\u001b[?25h"]
[12.093544, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[50C\u001b[?25h"]
[12.232021, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[50C-\r\u001b[51C\u001b[?25h"]
[12.232352, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[51C\u001b[?25h"]
[12.233621, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[51C\u001b[?25h"]
[12.233758, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[51C\u001b[?25h"]
[12.487532, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[49C\u001b[K\u001b[0;4m--access-token \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--access-token\u001b[0;2;7;37m (API V2 access token) \r\n\u001b[0;m--api-url\u001b[0;2;37m (Override default API endpoint) \r\n\u001b[0;m--config\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[0;m--context\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[0;m--format\u001b[0;2;37m (Columns for output in a comma-separated list. Possible values: ```Slug`, `Nam...) \r\n\u001b[0;m--interactive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[0;m--no-header\u001b[0;2;37m (Return raw data with no headers) \r\n\u001b[0;m--trace\u001b[0;2;37m (Show a log of network activity while performing a command) \r\n\u001b[0;m--verbose\u001b[0;2;37m (Enable verbos"]
[12.487575, "o", "e output) \u001b[0;m\u001b[9A\r\u001b[22C\u001b[?25h"]
[13.055318, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[52C\u001b[K\u001b[0;4mpi-url \r\n\u001b[22C\u001b[0;mf\r\n\u001b[3C\u001b[K\u001b[0;7mpi-url\u001b[0;2;7;37m (Override default API endpoint) \r\n\u001b[2C\u001b[0;m\u001b[Kconfig\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[5C\u001b[0;m\u001b[Ktext\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[2C\u001b[0;m\u001b[Kformat\u001b[0;2;37m (Columns for output in a comma-separated list. Possible values: ```Slug`, `Nam...) \r\n\u001b[2C\u001b[0;m\u001b[Kinteractive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[2C\u001b[0;m\u001b[Ktrace\u001b[0;2;37m (Show a log of network activity while performing a command) \u001b[0;m\r\n\u001b[J\u001b[A\u001b[6A\r\u001b[23C\u001b[?25h"]
[13.055949, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[6A\r\u001b[23C\u001b[?25h"]
[13.135678, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[51C\u001b[K\u001b[0;4mformat \r\n\u001b[23C\u001b[0;mo\r\n\u001b[2C\u001b[K\u001b[0;7mformat\u001b[0;2;7;37m (Columns for output in a comma-separated list. Possible values: ```Slug`, `Nam...)\r\n\u001b[2C\u001b[0;m\u001b[Ktrace\u001b[0;2;37m (Show a log of network activity while performing a command) \u001b[0;m\r\n\u001b[J\u001b[A\u001b[2A\r\u001b[24C\u001b[?25h"]
[13.135767, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\u001b[2A\r\u001b[24C\u001b[?25h"]
[13.227394, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\u001b[24Cr\r\n\r\n\u001b[2A\r\u001b[25C\u001b[?25h"]
[13.669904, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[49C\u001b[K--format \r\n\u001b[J\u001b[A\r\u001b[58C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[58C\u001b[?25h"]
[13.858549, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[58C\u001b[0;4mLICENSE \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;255;184;108mLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcompleters/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml\u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\r\nREADME.md\u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m \u001b[0;38;2;241;250;140mout.gif\r\n\u001b[0;38;2;189;147;249mcmd/ \u001b[0;m \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \u001b[0;m\u001b[3A\r\u001b[22C\u001b[?25h"]
[15.333832, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[58C\u001b[KLICENSE \r\n\u001b[J\u001b[A\r\u001b[66C\u001b[?25h"]
[15.334391, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[66C\u001b[?25h"]
[15.33516, "o", "\u001b[?25l\u001b[2A\r\r\n"]
[15.335343, "o", "\r\n\r\u001b[66C\u001b[?25h"]
[15.335449, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[66C\u001b[?25h"]
[16.005028, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[16.006194, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[16.03079, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[16.378204, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31mh\u001b[0;m\r\u001b[7C\u001b[?25h"]
[16.378282, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[16.425855, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mhx\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[16.570896, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C \r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[16.829839, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C~\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[17.058764, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[10C/\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[17.177157, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C.\r\u001b[12C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[12C\u001b[?25h"]
[17.834983, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12Cc\r\u001b[13C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[13C\u001b[?25h"]
[17.926157, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[13Co\r\u001b[14C\u001b[?25h"]
[17.926215, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[14C\u001b[?25h"]
[18.004605, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[14Cn\r\u001b[15C\u001b[?25h"]
[18.004858, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[15C\u001b[?25h"]
[18.291976, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[15Cf\r\u001b[16C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[16C\u001b[?25h"]
[18.702813, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[K\u001b[0;4m/home/rsteube/.config/\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;189;147;249m.config/\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[19.316146, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[9C\u001b[K/home/rsteube/.config/\r\n\u001b[J\u001b[A\r\u001b[31C\u001b[?25h"]
[19.316319, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[19.316458, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[19.862954, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[31Cc\r\u001b[32C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[32C\u001b[?25h"]
[19.918121, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[32Ca\r\u001b[33C\u001b[?25h"]
[19.918447, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[33C\u001b[?25h"]
[20.064201, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[33Cr\r\u001b[34C\u001b[?25h"]
[20.064365, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[34C\u001b[?25h"]
[20.150188, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[34Ca\r\u001b[35C\u001b[?25h"]
[20.150377, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[35C\u001b[?25h"]
[20.451924, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[35Cpace/\r\u001b[40C\u001b[?25h"]
[21.7444, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[40Co\r\u001b[41C\u001b[?25h"]
[21.744677, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[41C\u001b[?25h"]
[21.845333, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[41Cv\r\u001b[42C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[42C\u001b[?25h"]
[21.953328, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[42Ce\r\u001b[43C\u001b[?25h"]
[21.953842, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[43C\u001b[?25h"]
[21.955504, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[43C\u001b[?25h"]
[21.955608, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[43C\u001b[?25h"]
[22.035678, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[43Cr\r\u001b[44C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[44C\u001b[?25h"]
[22.335102, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[44Clays/\r\u001b[49C\u001b[?25h"]
[23.158594, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[49Cd\r\u001b[50C\u001b[?25h"]
[23.158643, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[50C\u001b[?25h"]
[23.209641, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[50Co\r\u001b[51C\u001b[?25h"]
[23.209747, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[51C\u001b[?25h"]
[23.335212, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[51Cc\r\u001b[52C\u001b[?25h"]
[23.335293, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[52C\u001b[?25h"]
[23.508935, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[52Ct\r\u001b[53C\u001b[?25h"]
[23.509059, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[53C\u001b[?25h"]
[23.634453, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[53Cl\r\u001b[54C\u001b[?25h"]
[23.634489, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[54C\u001b[?25h"]
[23.826324, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[54C.\r\u001b[55C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[55C\u001b[?25h"]
[24.074935, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55Cy\r\u001b[56C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[56C\u001b[?25h"]
[24.195274, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[56Ca\r\u001b[57C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[57C\u001b[?25h"]
[24.325115, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[57Cm\r\u001b[58C\u001b[?25h"]
[24.325339, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[58C\u001b[?25h"]
[24.373617, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[58Cl\r\u001b[59C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[59C\u001b[?25h"]
[24.70851, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]
[24.773683, "o", "\u001b[?1049h\u001b[?2004h\u001b[?1004h\u001b[2J"]
[24.773872, "o", "\u001b[1;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;180;190;254m 1\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m\u001b[48;2;245;224;220m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;1H \u001b[38;2;69;71;90m ~\u001b[38;2;205;214;244m \u001b[3;1H \u001b[4;1H \u001b[5;1H \u001b[6;1H \u001b[7;1H \u001b[8;1H "]
[24.773892, "o", " \u001b[9;1H \u001b[10;1H \u001b[11;1H \u001b[12;1H \u001b[13;1H \u001b[14;1H \u001b[15;1H \u001b[16;1H \u001b[17;1H "]
[24.773904, "o", " \u001b[18;1H \u001b[19;1H \u001b[20;1H \u001b[21;1H \u001b[22;1H \u001b[23;1H\u001b[38;2;127;132;156m\u001b[48;2;49;50;68m NOR ~/.config/carapace/overlays/doctl.yaml 1 sel 1:1 \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mLoaded 1 files. \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[25.003747, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[25.21765, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[25.44894, "o", "\u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;49;50;68m┌Space─────────────────────────────────────────────┐\u001b[2;57H│ f Open file picker │\u001b[3;57H│ F Open file picker at current working directory │\u001b[4;57H│ b Open buffer picker │\u001b[5;57H│ j Open jumplist picker │\u001b[6;57H│ s Open symbol picker │\u001b[7;57H│ S Open workspace symbol picker │\u001b[8;57H│ d Open diagnostic picker │\u001b[9;57H│ D Open workspace diagnostic picker │\u001b[10;57H│ a Perform code action │\u001b[11;57H│ ' Open last picker │\u001b[12;57H│ g Debug (experimental) │\u001b[13;57H│ w Window │\u001b[14;57H│ y Join and yank selections to clipboard │\u001b[15;57H│ "]
[25.449042, "o", "Y Yank main selection to clipboard │\u001b[16;57H│ p Paste clipboard after selections │\u001b[17;57H│ P Paste clipboard before selections │\u001b[18;57H│ R Replace selections by clipboard content │\u001b[19;57H│ / Global search in workspace folder │\u001b[20;57H│ k Show docs for item under cursor │\u001b[21;57H│ r Rename symbol │\u001b[22;57H│ h Select symbol references │\u001b[23;57H│ ? Open command palette │\u001b[24;1H\u001b[48;2;30;30;46m \u001b[24;8H \u001b[24;10H \u001b[24;57H\u001b[48;2;49;50;68m└────────────────────────────────────<space>───────┘\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[1;7H\u001b[?25l"]
[25.799163, "o", "\u001b[1;3H\u001b[38;2;69;71;90m\u001b[48;2;30;30;46m16\u001b[1;7H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[1;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[2;3H\u001b[38;2;69;71;90m15\u001b[2;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mflag\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[2;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[3;3H\u001b[38;2;69;71;90m14\u001b[3;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213moutput\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161mtext\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mjson\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m \u001b[3;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[4;3H\u001b[38;2;69;71;90m13\u001b[4;7H\u001b[38;2;148;226;213m\u001b[48;2;69;71;90mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[4;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m "]
[25.799472, "o", " \u001b[5;3H\u001b[38;2;69;71;90m12\u001b[5;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcompute\u001b[38;2;108;112;134m \u001b[5;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[6;3H\u001b[38;2;69;71;90m11\u001b[6;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommands\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mthat\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mmanage\u001b[38;2;108;112;134m \u001b[38;2;166;227;161minfrastructure\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[7;3H\u001b[38;2;69;71;90m10\u001b[7;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[7;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[8;3H\u001b[38;2;69;71;90m 9\u001b[8;7"]
[25.799566, "o", "H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregion\u001b[38;2;108;112;134m \u001b[8;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[9;3H\u001b[38;2;69;71;90m 8\u001b[9;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommands\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mto\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mdatacenter\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregions\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[10;3H\u001b[38;2;69;71;90m 7\u001b[10;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[10;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[11;3H\u001b[38;2;69"]
[25.799622, "o", ";71;90m 6\u001b[11;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[11;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[12;3H\u001b[38;2;69;71;90m 5\u001b[12;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mList\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mdatacenter\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregions\u001b[38;2;108;112;134m \u001b[12;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[13;3H\u001b[38;2;69;71;90m 4\u001b[13;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mflags\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[13;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[14;3H\u001b[38;2;69;71;90m 3\u001b[14;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213m--"]
[25.799675, "o", "format=\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mColumns\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mfor\u001b[38;2;108;112;134m \u001b[38;2;166;227;161moutput\u001b[38;2;108;112;134m \u001b[38;2;166;227;161min\u001b[38;2;108;112;134m \u001b[38;2;166;227;161ma\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcomma-separated\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[15;3H\u001b[38;2;69;71;90m 2\u001b[15;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[15;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;3H\u001b[38;2;69;71;90m 1\u001b[16;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mflag\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[16;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[17;3H\u001b[38;2;180;190;254m20\u001b[17;7H\u001b[38;2;108;112;134m\u001b[48;2;69;71;90m \u001b[38;2;148;226;213mformat\u001b[38;2"]
[25.799722, "o", ";147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m\"$uniquelist(,)\"\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mSlug\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mName\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mAvailable\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m\u001b[48;2;245;224;220m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[18;3H\u001b[38;2;69;71;90m 1\u001b[18;7H\u001b[38;2;108;112;134m \u001b[18;57H\u001b[38;2;205;214;244m \u001b[19;3H\u001b[38;2;69;71;90m ~\u001b[19;57H\u001b[38;2;205;214;244m \u001b[20;57H \u001b[21;57H \u001b[22;57H \u001b[23;46H\u001b[38;2;127;132;156m\u001b[48;2;49;50;68m[+]\u001b[23;57H 1 sel 20:66 \u001b[24;57H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m "]
[25.799768, "o", " \u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;72H\u001b[?25l"]
[26.014401, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;72H\u001b[?25l"]
[26.621449, "o", "\u001b[1;7H\u001b[38;2;108;112;134m\u001b[48;2;30;30;46m \u001b[38;2;148;226;213mflag\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[2;7H\u001b[38;2;108;112;134m \u001b[38;2;148;226;213moutput\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161mtext\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mjson\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m \u001b[3;7H\u001b[38;2;148;226;213mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[4;7H\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcompute\u001b[38;2;108;112;134m \u001b[5;7H \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommands\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mthat\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mmanage\u001b[38;2;108;112;134m \u001b[38;2;166;227;161minfrastructure\u001b[38;2;108;112;134m \u001b[6;7H \u001b[38;2;148;226;213mcommands\u001b[38;2;147;153;178m:\u001b"]
[26.621987, "o", "[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[7;7H\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregion\u001b[38;2;108;112;134m \u001b[8;7H \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mDisplay\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcommands\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mto\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mdatacenter\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregions\u001b[38;2;108;112;134m \u001b[9;7H \u001b[38;2;148;226;213mcommands\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[10;7H\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m-\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mname\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[11;7H \u001b[38;2;148;226;213mdescription\u001b[38;2;147;153;178m:\u001b[38;2"]
[26.622061, "o", ";108;112;134m \u001b[38;2;166;227;161mList\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mdatacenter\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mregions\u001b[38;2;108;112;134m \u001b[12;7H \u001b[38;2;148;226;213mflags\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[13;7H\u001b[38;2;108;112;134m \u001b[38;2;148;226;213m--format=\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mColumns\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mfor\u001b[38;2;108;112;134m \u001b[38;2;166;227;161moutput\u001b[38;2;108;112;134m \u001b[38;2;166;227;161min\u001b[38;2;108;112;134m \u001b[38;2;166;227;161ma\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mcomma-separated\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mlist\u001b[38;2;108;112;134m \u001b[14;7H \u001b[38;2;148;226;213mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[15;7H\u001b[38;2;108;112;134m \u001b[38;2;148;226;213mflag\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[16;7H\u001b[38;2;108;112;134m "]
[26.622085, "o", "\u001b[38;2;148;226;213mformat\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m\"$uniquelist(,)\"\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mSlug\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mName\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mAvailable\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m \u001b[17;4H\u001b[38;2;180;190;254m1\u001b[17;7H\u001b[38;2;108;112;134m\u001b[48;2;245;224;220m \u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[18;4H\u001b[38;2;69;71;90m~\u001b[18;7H\u001b[38;2;205;214;244m \u001b[19;3H \u001b[23;96H\u001b[38;2;127;132;156m\u001b[48;2;49;50;68m 1 sel\u001b[23;103H 21:1\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;7H\u001b[?25l"]
[26.906462, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;7H\u001b[?25l"]
[27.475392, "o", "\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[17;7H\u001b[?25l"]
[27.89147, "o", "\u001b[14;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mquit buffer-previous write-quit! \u001b[15;1Hquit! write write-all \u001b[16;1Hopen write! write-quit-all \u001b[17;1Hbuffer-close new write-quit-all! \u001b[18;1Hbuffer-close! format quit-all \u001b[19;1Hbuffer-close-others indent-style quit-all! \u001b[20;1Hbuffer-close-others! line-ending cquit \u001b[21;1Hbuffer-close-all earlier cquit! \u001b[22;1Hbuffer-close-all! later "]
[27.891565, "o", " theme \u001b[23;1Hbuffer-next write-quit clipboard-yank \u001b[24;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m:\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;2H\u001b[?25h\u001b[2 q"]
[28.657992, "o", "\u001b[14;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;69;71;90m 3\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m \u001b[38;2;148;226;213mcompletion\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[15;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌────────────────────────────────────────────────────────────────────────────────────────┐\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[16;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Write\u001b[16;9Hchanges\u001b[16;17Hto\u001b[16;20Hdisk.\u001b[16;26HAccepts\u001b[16;34Han\u001b[16;37Hoptional\u001b[16;46Hpath\u001b[16;51H(:write\u001b[16;59Hsome/path.txt) \u001b[16;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases: w\u001b[17;37H \u001b[17;73H \u001b[17;90H│\u001b[38;2;205;214;244m\u001b[4"]
[28.658083, "o", "8;2;30;30;46m \u001b[18;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[19;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68mwrit\u001b[19;6H \u001b[19;37Hwrite-quit-all\u001b[19;73Hshow\u001b[19;78Hdirectory\u001b[20;1Hwrit\u001b[20;6H! \u001b[20;37Hwrite-qu\u001b[20;46Ht-all!\u001b[20;73Hvsplit-new\u001b[21;1Hwrit\u001b[21;6H-quit \u001b[21;37Hlsp-wo\u001b[21;44Hkspace-command\u001b[21;73Hhsplit-new\u001b[22;1Hwrit\u001b[22;6H-quit! \u001b[22;37Hnew \u001b[22;73Hreflow\u001b[23;1Hwrit\u001b[23;6H-all \u001b[23;37Hshow-clipboard-provider\u001b[23;73H \u001b[24;2H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mw\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;3H\u001b[?25h\u001b[2 q"]
[28.703306, "o", "\u001b[15;1H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[38;2;69;71;90m 2\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m \u001b[38;2;148;226;213mflag\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[16;1H \u001b[38;2;69;71;90m 1\u001b[38;2;205;214;244m \u001b[38;2;108;112;134m \u001b[38;2;148;226;213mformat\u001b[38;2;147;153;178m:\u001b[38;2;108;112;134m \u001b[38;2;147;153;178m[\u001b[38;2;166;227;161m\"$uniquelist(,)\"\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mSlug\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mName\u001b[38;2;147;153;178m,\u001b[38;2;108;112;134m \u001b[38;2;166;227;161mAvailable\u001b[38;2;147;153;178m]\u001b[38;2;108;112;134m \u001b[38;2;205;214;244m \u001b[17;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m┌─────────────────────────────────────────────────────────────────────────────────"]
[28.70341, "o", "───────┐\u001b[18;1H│ Write changes to disk and close the current view. Accepts an optional path (:wq │\u001b[19;1H│ some/path.txt)\u001b[19;37H \u001b[19;73H \u001b[19;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[20;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m│ Aliases:\u001b[20;12Hwq,\u001b[20;16Hx\u001b[20;37H \u001b[20;73H \u001b[20;90H│\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[21;1H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m└────────────────────────────────────────────────────────────────────────────────────────┘\u001b[38;2;205;214;244m\u001b[48;2;30;30;46m \u001b[22;11H\u001b[38;2;147;153;178m\u001b[48;2;49;50;68m \u001b[22;37Hwrite-quit-all\u001b[22;73H \u001b[23;7Hquit!\u001b[23;37Hwrite-quit-\u001b[23;49Hll! \u001b[24;3H\u001b[38;2;205;214;244m\u001b[48;2;30;30;46mq\u001b[59m\u001b[39m\u001b[49m\u001b[0m\u001b[24;4H\u001b[?25h\u001b[2 q"]
[29.718523, "o", "\u001b[?25h\u001b[2 q\u001b[0 q\u001b[?1006l\u001b[?1015l\u001b[?1003l\u001b[?1002l\u001b[?1000l\u001b[?2004l\u001b[?1004l\u001b[?1049l"]
[29.729529, "o", "\u001b[?7h\u001b[7m⏎\u001b[m \r \r\u001b[?7l\u001b[?2004h"]
[29.729784, "o", "\u001b[?25l\r\r\n\u001b[0;1;36mcarapace-bin\u001b[0;m on \u001b[0;1;35m master\u001b[0;m \u001b[0;1;31m[!?]\u001b[0;m via \u001b[0;1;36m🐹 v1.20 \r\n\u001b[0;1;37mesh\u001b[0;m \u001b[0;1;32m\u001b[0;m \r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[29.729958, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[29.7511, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[29.751158, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[31.182326, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31md\u001b[0;m\r\u001b[7C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[31.293963, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mo\u001b[0;m\r\u001b[8C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[8C\u001b[?25h"]
[31.413381, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mc\u001b[0;m\r\u001b[9C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[31.638894, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[9C\u001b[0;31mt\u001b[0;m\r\u001b[10C\u001b[?25h"]
[31.638991, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[31.744604, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mdoctl\u001b[0;m\r\u001b[11C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[11C\u001b[?25h"]
[32.62435, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[11C \r\u001b[12C\u001b[?25h"]
[32.916414, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C-\r\u001b[13C\u001b[?25h"]
[32.9165, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[13C\u001b[?25h"]
[33.055959, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[13C-\r\u001b[14C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[14C\u001b[?25h"]
[33.347943, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[12C\u001b[K\u001b[0;4m--access-token \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--access-token\u001b[0;2;7;37m (API V2 access token) \r\n\u001b[0;m--api-url\u001b[0;2;37m (Override default API endpoint) \r\n\u001b[0;m--config\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[0;m--context\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[0;m--interactive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[0;34m--output\u001b[0;2;37m (Desired output format [text|json]) \r\n\u001b[0;m--trace\u001b[0;2;37m (Show a log of network activity while performing a command) \r\n\u001b[0;m--verbose\u001b[0;2;37m (Enable verbose output) \u001b[0;m\u001b[8A\r\u001b[22C\u001b[?25h"]
[33.952867, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\u001b[22Co\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[33.953688, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[8A\r\u001b[23C\u001b[?25h"]
[34.058041, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[14C\u001b[K\u001b[0;4moutput \r\n\u001b[23C\u001b[0;mu\r\n\u001b[K\u001b[0;7;34m--output\u001b[0;2;7;37m (Desired output format [text|json])\u001b[0;m --verbose\u001b[0;2;37m (Enable verbose output)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[24C\u001b[?25h"]
[34.889063, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[12C\u001b[K--output \r\n\u001b[J\u001b[A\r\u001b[21C\u001b[?25h"]
[34.889398, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[21C\u001b[?25h"]
[35.481613, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[21C\u001b[0;4mLICENSE \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7;38;2;255;184;108mLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcompleters/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml\u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \r\n\u001b[0;38;2;255;184;108mREADME.md\u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m json \u001b[0;38;2;255;184;108mstaticcheck.conf\r\n\u001b[0;38;2;189;147;249mcmd/ \u001b[0;m \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;241;250;140mout.gif\u001b[0;m text \u001b[3A\r\u001b[22C\u001b[?25h"]
[35.919716, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[21C\u001b[K\u001b[0;4mjson \r\n\u001b[22C\u001b[0;mj\r\n\u001b[K\u001b[0;7mjson\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[23C\u001b[?25h"]
[35.920025, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[23C\u001b[?25h"]
[36.047803, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\u001b[23Cs\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[36.048113, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[36.742828, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[21C\u001b[Kjson \r\n\u001b[J\u001b[A\r\u001b[26C\u001b[?25h"]
[36.742894, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[26C\u001b[?25h"]
[37.993241, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[26Cc\r\u001b[27C\u001b[?25h"]
[37.993308, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[27C\u001b[?25h"]
[38.103574, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[27Co\r\u001b[28C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[28C\u001b[?25h"]
[38.468509, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[28Cmp\r\u001b[30C\u001b[?25h"]
[39.240103, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[30Cu\r\u001b[31C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[39.240196, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[31C\u001b[?25h"]
[39.459622, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[31Cte \r\u001b[34C\u001b[?25h"]
[39.459663, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[34C\u001b[?25h"]
[39.912403, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[34Cr\r\u001b[35C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[35C\u001b[?25h"]
[39.965575, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[35Ce\r\u001b[36C\u001b[?25h"]
[39.966167, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[36C\u001b[?25h"]
[39.967374, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[36C\u001b[?25h"]
[39.967445, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[36C\u001b[?25h"]
[40.281779, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[34C\u001b[K\u001b[0;4mregion \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mregion\u001b[0;2;7;37m (Display commands to list datacenter regions) \r\n\u001b[0;mreserved-ip\u001b[0;2;37m (Display commands to manage reserved IP addresses) \r\n\u001b[0;mreserved-ip-action\u001b[0;2;37m (Display commands to associate reserved IP addresses with Droplets)\u001b[0;m\u001b[3A\r\u001b[22C\u001b[?25h"]
[41.220513, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[34C\u001b[Kregion \r\n\u001b[J\u001b[A\r\u001b[41C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[41C\u001b[?25h"]
[41.484392, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[41Clist \r\u001b[46C\u001b[?25h"]
[42.502431, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[46C-\r\u001b[47C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[47C\u001b[?25h"]
[42.657706, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[47C-\r\u001b[48C\u001b[?25h"]
[42.658045, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[48C\u001b[?25h"]
[43.342469, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[46C\u001b[K\u001b[0;4m--access-token \r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7m--access-token\u001b[0;2;7;37m (API V2 access token) \r\n\u001b[0;m--api-url\u001b[0;2;37m (Override default API endpoint) \r\n\u001b[0;m--config\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[0;m--context\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[0;34m--format\u001b[0;2;37m (Columns for output in a comma-separated list) \r\n\u001b[0;m--interactive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[0;m--no-header\u001b[0;2;37m (Return raw data with no headers) \r\n\u001b[0;m--trace\u001b[0;2;37m (Show a log of network activity while performing a command) \r\n\u001b[0;m--verbose\u001b[0;2;37m (Enable verb"]
[43.342504, "o", "ose output) \u001b[0;m\u001b[9A\r\u001b[22C\u001b[?25h"]
[43.935822, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[49C\u001b[K\u001b[0;4mpi-url \r\n\u001b[22C\u001b[0;mf\r\n\u001b[3C\u001b[K\u001b[0;7mpi-url\u001b[0;2;7;37m (Override default API endpoint) \r\n\u001b[2C\u001b[0;m\u001b[Kconfig\u001b[0;2;37m (Specify a custom config file) \r\n\u001b[5C\u001b[0;m\u001b[Ktext\u001b[0;2;37m (Specify a custom authentication context name) \r\n\u001b[0;m\u001b[K\u001b[0;34m--format\u001b[0;2;37m (Columns for output in a comma-separated list) \r\n\u001b[0;m\u001b[K--interactive\u001b[0;2;37m (Enable interactive behavior. Defaults to true if the terminal supports it (de...)\r\n\u001b[2C\u001b[0;m\u001b[Ktrace\u001b[0;2;37m (Show a log of network activity while performing a command) \u001b[0;m\r\n\u001b[J\u001b[A\u001b[6A\r\u001b[23C\u001b[?25h"]
[43.936398, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[6A\r\u001b[23C\u001b[?25h"]
[44.020761, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[48C\u001b[K\u001b[0;4mformat \r\n\u001b[23C\u001b[0;mo\r\n\u001b[K\u001b[0;7;34m--format\u001b[0;2;7;37m (Columns for output in a comma-separated list) \r\n\u001b[2C\u001b[0;m\u001b[Ktrace\u001b[0;2;37m (Show a log of network activity while performing a command)\u001b[0;m\r\n\u001b[J\u001b[A\u001b[2A\r\u001b[24C\u001b[?25h"]
[44.021207, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\u001b[2A\r\u001b[24C\u001b[?25h"]
[44.595189, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[46C\u001b[K--format \r\n\u001b[J\u001b[A\r\u001b[55C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[55C\u001b[?25h"]
[45.239954, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55C\u001b[0;4mAvailable\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mAvailable\u001b[0;m Slug \u001b[0;38;2;189;147;249mdist/ \u001b[0;m \u001b[0;38;2;255;184;108mgo.sum \r\nLICENSE \u001b[0;m \u001b[0;38;2;189;147;249mcmd/ \u001b[0;m \u001b[0;38;2;255;184;108mdocker-compose.yml\u001b[0;m \u001b[0;38;2;241;250;140mout.gif \r\n\u001b[0;mName \u001b[0;38;2;189;147;249mcompleters/ \u001b[0;m \u001b[0;38;2;189;147;249mdocs/ \u001b[0;m \u001b[0;38;2;189;147;249mpkg/ \r\n\u001b[0;38;2;255;184;108mREADME.md\u001b[0;m \u001b[0;38;2;189;147;249mcompleters_release/\u001b[0;m \u001b[0;38;2;255;184;108mgo.mod \u001b[0;m \u001b[0;38;2;255;184;108mstaticcheck.conf\u001b[0;m\u001b[4A\r\u001b[22C\u001b[?25h"]
[45.24015, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u001b[4A\r\u001b[22C\u001b[?25h"]
[47.123158, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;4mLICENSE\r\n\u001b[22C\u001b[0;mn\r\n\u001b[K\u001b[0;7;38;2;255;184;108mLICENSE\u001b[0;m Name \u001b[0;38;2;255;184;108mstaticcheck.conf\u001b[0;m\r\n\u001b[J\u001b[A\u001b[1A\r\u001b[23C\u001b[?25h"]
[47.123583, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[23C\u001b[?25h"]
[47.179147, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;4mName\r\n\u001b[23C\u001b[0;ma\r\n\u001b[K\u001b[0;7mName\u001b[0;m\u001b[1A\r\u001b[24C\u001b[?25h"]
[47.179326, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[24C\u001b[?25h"]
[47.77873, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[KName\r\n\u001b[J\u001b[A\r\u001b[59C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[59C\u001b[?25h"]
[48.127444, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[59C,\r\u001b[60C\u001b[?25h"]
[48.592849, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;4;33m'Name,Available'\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mAvailable\u001b[0;m Slug\u001b[1A\r\u001b[22C\u001b[?25h"]
[49.380732, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[61C\u001b[K\u001b[0;4;33mSlug'\r\n\r\n\u001b[0;m\u001b[KAvailable \u001b[0;7mSlug\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[49.380814, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\r\n\r\n\u001b[1A\r\u001b[22C\u001b[?25h"]
[49.679376, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;33m'Name,Slug'\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[66C\u001b[?25h"]
[49.679448, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[66C\u001b[?25h"]
[49.679727, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[66C\u001b[?25h"]
[49.961513, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;4;33m'Name,Slug'\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mSlug\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[50.871938, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;33m'Name,Slug'\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[66C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[66C\u001b[?25h"]
[51.077833, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[66C,\r\u001b[67C\u001b[?25h"]
[51.077899, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[67C\u001b[?25h"]
[51.276899, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;4;33m'Name,Slug,Available'\r\n\u001b[0;1;37;45m COMPLETING argument \u001b[0;m \r\n\u001b[0;7mAvailable\u001b[0;m\u001b[1A\r\u001b[22C\u001b[?25h"]
[51.923776, "o", "\u001b[?25l\u001b[3A\r\r\n\r\n\u001b[55C\u001b[K\u001b[0;33m'Name,Slug,Available'\u001b[0;m\r\n\u001b[J\u001b[A\r\u001b[76C\u001b[?25h"]
[51.923853, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[76C\u001b[?25h"]
[53.154925, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\r\u001b[6C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[53.155851, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[53.182772, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[53.18292, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[6C\u001b[?25h"]
[53.485424, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[0;31me\u001b[0;m\r\u001b[7C\u001b[?25h"]
[53.48551, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[7C\u001b[?25h"]
[53.670814, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[7C\u001b[0;31mx\u001b[0;m\r\u001b[8C\u001b[?25h"]
[53.822881, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[8C\u001b[0;31mi\u001b[0;m\r\u001b[9C\u001b[?25h"]
[53.823699, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[9C\u001b[?25h"]
[53.84619, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\u001b[6C\u001b[K\u001b[0;32mexit\u001b[0;m\r\u001b[10C\u001b[?25h\u001b[?25l\u001b[2A\r\r\n\r\n\r\u001b[10C\u001b[?25h"]
[53.998883, "o", "\u001b[?25l\u001b[2A\r\r\n\r\n\r\n\r\u001b[?25h\u001b[?7h\u001b[?2004l\r"]

272
overlay.html Normal file
View File

@ -0,0 +1,272 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Overlay - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/overlay.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="overlay"><a class="header" href="#overlay">Overlay</a></h1>
<p>Overlays are essentially <a href="./spec.html">Spec</a> files placed in <a href="https://pkg.go.dev/os#UserConfigDir"><code>${UserConfigDir}/carapace/overlays</code></a> that provide additional completions.
These are merged with the existing completion and provide a workaround for issues that have yet to be fixed in upstream.</p>
<blockquote>
<p>Overlays implicitly set <code>CARAPACE_LENIENT</code> to allow unknown flags.</p>
</blockquote>
<h2 id="flag"><a class="header" href="#flag">Flag</a></h2>
<pre><code class="language-yaml"># ~/.config/carapace/overlays/doctl.yaml
name: doctl
persistentflags:
--output=: Desired output format [text|json]
completion:
flag:
output: [text, json]
commands:
- name: compute
description: Display commands that manage infrastructure
commands:
- name: region
description: Display commands to list datacenter regions
commands:
- name: list
description: List datacenter regions
flags:
--format=: Columns for output in a comma-separated list
completion:
flag:
format: ["$uniquelist(,)", Slug, Name, Available]
</code></pre>
<p><img src="./overlay-flag.cast" alt="" /></p>
<h2 id="command"><a class="header" href="#command">Command</a></h2>
<pre><code class="language-yaml"># ~/.config/carapace/overlays/doctl.yaml
name: doctl
commands:
- name: auth
description: Display commands for authenticating doctl with an account
group: management
- name: compute
description: Display commands that manage infrastructure
group: core
- name: custom
description: custom command
group: custom
flags:
-h, --help: show help
completion:
positional:
- [one, two, three]
</code></pre>
<p><img src="./overlay-command.cast" alt="" /></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="spec/macros.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="variable.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="spec/macros.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="variable.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

3171
print.html Normal file

File diff suppressed because it is too large Load Diff

227
release_notes.html Normal file
View File

@ -0,0 +1,227 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Release Notes - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="asciinema/asciinema-player.css">
<link rel="stylesheet" href="./theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="release-notes"><a class="header" href="#release-notes">Release Notes</a></h1>
<p>Release notes contain <em>noteworthy</em> changes between <strong>minor</strong> (<code>1.x</code>) releases.</p>
<blockquote>
<p>These aren't strictly pinned to <strong>tags</strong>.
So a feature announced as <code>1.n</code> might already be present in a previous (<code>1.{n-1}.x</code>) or added in a later (<code>1.n.x</code>) <strong>patch</strong> release.</p>
<p>See <a href="https://github.com/carapace-sh/carapace-bin/releases">releases</a> for an exact changelog.</p>
</blockquote>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="development/tools/carapace-generate.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="release_notes/v1.x.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="development/tools/carapace-generate.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="release_notes/v1.x.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script src="asciinema/asciinema-player.min.js"></script>
<script src="asciinema/load.js"></script>
</div>
</body>
</html>

231
release_notes/v0.11.html Normal file
View File

@ -0,0 +1,231 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.11/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.11 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.11.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v011---puking-rainbows"><a class="header" href="#v011---puking-rainbows">v0.11 - Puking Rainbows</a></h1>
<p><img src="./v0.11/banner.png" alt="" /></p>
<p>This release adds color support for <code>zsh</code> and <code>elvish</code> and thus raises <code>elvish</code> minimum version to <code>v0.18.0</code>.</p>
<p><img src="./v0.11/rainbow.png" alt="" /></p>
<h2 id="ls_colors"><a class="header" href="#ls_colors">LS_COLORS</a></h2>
<p><code>LS_COLORS</code> should now be working correctly - e.g with <a href="https://github.com/sharkdp/vivid">vivid</a> in <code>elvish</code>:</p>
<pre><code class="language-sh">set E:LS_COLORS = (vivid generate dracula)
</code></pre>
<p><img src="./v0.11/lscolors1.png" alt="" /></p>
<p><img src="./v0.11/lscolors2.png" alt="" /></p>
<h2 id="style-config"><a class="header" href="#style-config">Style Config</a></h2>
<p>Styles can now be configured with <code>carapace --style key=value</code> (an empty value restores the default).</p>
<p><img src="./v0.11/style-config.png" alt="" /></p>
<h2 id="powershell-style"><a class="header" href="#powershell-style">Powershell Style</a></h2>
<p>Added color support for powershell.</p>
<p><img src="./v0.11/powershell.png" alt="" /></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.12.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.12.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

274
release_notes/v0.12.html Normal file
View File

@ -0,0 +1,274 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.12/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.12 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.12.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v012---preinfusion"><a class="header" href="#v012---preinfusion">v0.12 - Preinfusion</a></h1>
<p><img src="./v0.12/banner.png" alt="" /></p>
<h2 id="preinvoke"><a class="header" href="#preinvoke">Preinvoke</a></h2>
<p>Generic alteration of completion before execution which enables features like directory change in <code>git -C &lt;DIR&gt;</code>:</p>
<p><img src="./v0.12/preinvoke.png" alt="" /></p>
<h2 id="spec"><a class="header" href="#spec">Spec</a></h2>
<p>Experimental support for simple completions using <code>yaml</code> <a href="https://github.com/carapace-sh/carapace-spec/tree/master/example">spec files</a>:</p>
<pre><code class="language-yaml">name: example
description:
flags:
--dynamic=: dynamic value
-o, --optarg?: optarg flag
-s, --styled=: styled values
completion:
flag:
dynamic: ["$(git branch --all | cut -c 3- | sed 's/$/\t\tblue/')", "static value"]
optarg: ["first", "second", "third"]
styled:
- "blue\tblue\tblue"
- "cyan\tcyan\tcyan"
positional:
- ["pos1-a", "pos1-b", "pos1-c"]
- ["$_files"]
</code></pre>
<h2 id="spec-autoloading"><a class="header" href="#spec-autoloading">Spec Autoloading</a></h2>
<p>Specs placed in <code>${UserConfigDir}/carapace/specs/</code> (<a href="https://pkg.go.dev/os@go1.18.1#UserConfigDir">UserConfigDir</a>) are now registered with <code>carapace _carapace</code>.
File name must be the command to be completed and match <code>^[0-9a-zA-Z_\-.]+\.yaml$</code> (sanity check to avoid breakage in scripts).</p>
<h2 id="custom-macros"><a class="header" href="#custom-macros">Custom Macros</a></h2>
<p>Exposed <a href="https://pkg.go.dev/github.com/carapace-sh/carapace-bin/pkg/actions">actions</a> as custom macros (list with <code>carapace --macros</code>).
Removed the <code>_</code> prefix from core macros to avoid clashes (e.g. <code>$files</code>, <code>$directories</code>).</p>
<h2 id="macro-arguments"><a class="header" href="#macro-arguments">Macro Arguments</a></h2>
<p>Arguments are parsed as <code>yaml</code> (<code>$macro(yaml)</code> - e.g.: <code>$_tools.gh.Users({users: true})</code>).
Brackets are optional when no argument is passed (<code>$files</code> instead of <code>$files()</code>).</p>
<h2 id="variable-substitution"><a class="header" href="#variable-substitution">Variable Substitution</a></h2>
<p>Variables are replaced using <a href="https://github.com/drone/envsubst">drone/envsubst</a> for contextual completion:</p>
<pre><code class="language-yaml">name: myzip
completion:
positional:
- ["$files([.zip])"] # ${C_ARG0}
positionalany: ["$_fs.ZipFileContents(${C_ARG0})"] # ${C_ARG1},${C_ARG2},...
</code></pre>
<p>Flags are only added to env when their value changed (thus: <code>${C_FLAG_FLAGNAME:-default}</code>):</p>
<pre><code class="language-yaml">name: myrefs
flags:
--tags: list tags # ${C_FLAG_TAGS}
--localbranches: list local branches # ${C_FLAG_LOCALBRANCHES}
--commits=: amount of commits # ${C_FLAG_COMMITS}
completion:
positional:
- ["$_tools.git.Refs({tags: ${C_FLAG_TAGS:-false}, localbranches: ${C_FLAG_LOCALBRANCHES:-false}, commits: ${C_FLAG_COMMITS:-0}})"] # refs based on flag values with defaults
- ["$_tools.git.Refs"] # default refs
- ["$(env)"] # env
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.13.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.11.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.13.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.11.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

225
release_notes/v0.13.html Normal file
View File

@ -0,0 +1,225 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.13/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.13 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.13.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v013---furious"><a class="header" href="#v013---furious">v0.13 - Furious</a></h1>
<p><img src="./v0.13/banner.png" alt="" /></p>
<h2 id="furyio"><a class="header" href="#furyio">fury.io</a></h2>
<p><code>DEB</code> and <code>RPM</code> packages are now published to <a href="https://rsteube.fury.site/">fury.io</a> (<a href="https://carapace-sh.github.io/carapace-bin/install.html">Install</a>)</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.14.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.12.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.14.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.12.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 KiB

240
release_notes/v0.14.html Normal file
View File

@ -0,0 +1,240 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.14/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.14 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.14.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v014---in-a-nutshell"><a class="header" href="#v014---in-a-nutshell">v0.14 - In A Nutshell</a></h1>
<p><img src="./v0.14/banner.png" alt="" /></p>
<h2 id="nushell"><a class="header" href="#nushell">Nushell</a></h2>
<p>https://github.com/nushell/nushell/pull/6295 adds support for external completers to nushell.
For this <code>config.nu</code> must be updated manually according to the snippet output of <code>carapace</code>.
Here's an example with <code>carapace</code> as default completer and a couple custom completers:</p>
<pre><code class="language-sh">let external_completer = {|spans|
{
$spans.0: { carapace $spans.0 nushell $spans | from json } # default
example: { example _carapace nushell $spans | from json }
pkill: { carapace --spec '/home/rsteube/.config/carapace/specs/pkill.yaml' nushell $spans | from json }
vault: { carapace --bridge vault/posener nushell $spans | from json }
} | get $spans.0 | each {|it| do $it}
}
let-env config = {
external_completer: $external_completer
}
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.15.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.13.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.15.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.13.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

229
release_notes/v0.15.html Normal file
View File

@ -0,0 +1,229 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.15/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.15 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.15.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v015---porcelain-shop"><a class="header" href="#v015---porcelain-shop">v0.15 - Porcelain Shop</a></h1>
<p><img src="./v0.15/banner.png" alt="" /></p>
<h2 id="zsh-this-might-break-some-stuff"><a class="header" href="#zsh-this-might-break-some-stuff">ZSH (this might break some stuff)</a></h2>
<p>Added support for homedir (<code>~</code>) and <a href="https://zsh.sourceforge.io/Doc/Release/Expansion.html#Static-named-directories">static named directories</a>.
These are not expanded by zsh for the completion function are thus now handled by carapace.
Quoting of special characters is now also done in carapace instead of <a href="https://zsh.sourceforge.io/Doc/Release/Completion-Widgets.html#Completion-Builtin-Commands">compadd</a> to skip <code>~</code> at appropriate times.
Edge cases where this doesn't work and some initial bugs regarding special characters not yet being handled correctly are expected.</p>
<p>see <a href="https://github.com/carapace-sh/carapace-bin/issues/1277">#1277</a></p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.16.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.14.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.16.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.14.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 613 KiB

235
release_notes/v0.16.html Normal file
View File

@ -0,0 +1,235 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.16/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.16 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.16.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v016---pandoras-box"><a class="header" href="#v016---pandoras-box">v0.16 - Pandoras Box</a></h1>
<p><img src="./v0.16/banner.png" alt="" /></p>
<p>Switched to a <a href="https://github.com/carapace-sh/carapace-pflag">custom pflag fork</a> with adaptions for non-posix variants like long shorthands (e.g. <code>-shorthand</code>).</p>
<blockquote>
<p>So far this has been done by patching <code>os.Args</code> which was rather hacky.
Modifications to the flag parser are quite complex though, so there might be some issues.</p>
</blockquote>
<p>see <a href="https://github.com/carapace-sh/carapace-bin/pull/1293/files">#1293</a></p>
<p><a href="https://github.com/carapace-sh/carapace-spec">Spec</a> files support non-posix flags now as well:</p>
<pre><code class="language-yaml">flags:
-np: non-posix shorthand
-np, -nonposix: non-posix shorthand and longhand
-np, --nonposix: non-posix shorthand mixed with posix longhand
</code></pre>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.17.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.15.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.17.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.15.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

285
release_notes/v0.17.html Normal file
View File

@ -0,0 +1,285 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.17/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.17 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.17.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v017---spec-tacular-citizen"><a class="header" href="#v017---spec-tacular-citizen">v0.17 - Spec-tacular Citizen</a></h1>
<p><img src="./v0.17/banner.png" alt="" /></p>
<p><a href="https://github.com/carapace-sh/carapace-spec">Specs</a> are now first-class citizens in carapace. They are integrated on root level and should behave similar to the existing completers (<code>carapace [spec.name] &lt;TAB&gt;</code>).</p>
<h2 id="list"><a class="header" href="#list">List</a></h2>
<p>Completers based on <a href="https://github.com/carapace-sh/carapace-spec">Specs</a> are highlighted in shells that support colors (details: <code>carapace --list=json</code>):</p>
<p><img src="./v0.17/list.png" alt="" /></p>
<h2 id="bridge"><a class="header" href="#bridge">Bridge</a></h2>
<p>Using <a href="https://github.com/carapace-sh/carapace-spec">Specs</a> for <a href="../spec/bridge.html">bridging</a> is from now on the recommended approach.
As these are auto-loaded with <code>carapace _carapace</code> and provide support for embedded completion like <code>sudo [spec.name] &lt;TAB&gt;</code>.</p>
<p>Existing completers with the same name will also be overridden.
E.g. <code>kubectl</code> (which is currently a bit outdated) can be configured to use the official completer:</p>
<pre><code class="language-yaml"># ${UserConfigDir}/carapace/specs/kubectl.yaml
name: kubectl
description: kubectl controls the Kubernetes cluster manager
completion:
positionalany: ["$_bridge.Cobra(kubectl)"]
</code></pre>
<blockquote>
<p>Note that bridging adds a slight overhead (~7-9ms?) for each invocation and is limited to supported frameworks / commands.</p>
</blockquote>
<h2 id="plugin"><a class="header" href="#plugin">Plugin</a></h2>
<p>Taking this one step further plugin completion like <code>cargo-[plugin]</code>, <code>gh-[plugin]</code>, <code>git-[plugin]</code> can now also be defined by <a href="https://github.com/carapace-sh/carapace-spec">Specs</a>.</p>
<p>E.g. the <a href="https://github.com/mislav/gh-repo-collab">gh-repo-collab</a> extension for <a href="https://cli.github.com/">github-cli</a>:</p>
<pre><code class="language-yaml"># ${UserConfigDir}/carapace/specs/gh-repo-collab.yaml
name: gh-repo-collab
description: manage repository collaborators
commands:
-
name: list
completion:
positional:
- ["$_tools.gh.OwnerRepositories"]
-
name: add
flags:
--permission=: set permission
completion:
flag:
permission: ["pull", "triage", "push", "maintain", "admin\t\tred"]
positional:
- ["$_tools.gh.OwnerRepositories"]
- ["$_tools.gh.Users"]
-
name: remove
completion:
positional:
- ["$_tools.gh.OwnerRepositories"]
- ["$_tools.gh.Users"]
</code></pre>
<p><img src="./v0.17/plugin.png" alt="" /></p>
<h2 id="nushell"><a class="header" href="#nushell">Nushell</a></h2>
<p>With https://github.com/nushell/nushell/pull/6652 (upcoming <a href="https://github.com/nushell/nushell/milestone/11?closed=1">v0.70.0</a>) the <a href="https://www.nushell.sh/">nushell</a> integration is now working on positional arguments.
The recommended configuration is equivalent to the example configuration in <code>config.nu</code>:</p>
<pre><code class="language-nu">let carapace_completer = {|spans|
carapace $spans.0 nushell $spans | from json
}
let-env config = {
external_completer: $carapace_completer
}
</code></pre>
<blockquote>
<p>Be sure to remove the <code>module completions</code> example so that it won't override the carapace completion</p>
</blockquote>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.18.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.16.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.18.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.16.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

237
release_notes/v0.18.html Normal file
View File

@ -0,0 +1,237 @@
<!DOCTYPE HTML>
<html lang="en" class="latte sidebar-visible" dir="ltr">
<head>
<meta property="og:image" content="https://carapace-sh.github.io/carapace-bin/release_notes/v0.18/banner.png" />
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>v0.18 - carapace-bin</title>
<!-- Custom HTML head -->
<meta name="description" content="A multi-shell completion binary.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../css/variables.css">
<link rel="stylesheet" href="../css/general.css">
<link rel="stylesheet" href="../css/chrome.css">
<link rel="stylesheet" href="../css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../highlight.css">
<link rel="stylesheet" href="../tomorrow-night.css">
<link rel="stylesheet" href="../ayu-highlight.css">
<!-- Custom theme stylesheets -->
<link rel="stylesheet" href="../asciinema/asciinema-player.css">
<link rel="stylesheet" href=".././theme/catppuccin.css">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "../";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "mocha" : "latte";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc.js"></script>
</head>
<body>
<div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('latte')
html.classList.add(theme);
html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<!-- populated by js -->
<mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
<noscript>
<iframe class="sidebar-iframe-outer" src="../toc.html"></iframe>
</noscript>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
<li role="none"><button role="menuitem" class="theme" id="latte">Latte</button></li>
<li role="none"><button role="menuitem" class="theme" id="frappe">Frappé</button></li>
<li role="none"><button role="menuitem" class="theme" id="macchiato">Macchiato</button></li>
<li role="none"><button role="menuitem" class="theme" id="mocha">Mocha</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">carapace-bin</h1>
<div class="right-buttons">
<a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i>
</a>
<a href="https://github.com/carapace-sh/carapace-bin/edit/master/docs/src/release_notes/v0.18.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="v018---spec-galore"><a class="header" href="#v018---spec-galore">v0.18 - Spec Galore</a></h1>
<p><img src="./v0.18/banner.png" alt="" /></p>
<h2 id="generate"><a class="header" href="#generate">Generate</a></h2>
<p>Specs can now be generated from <a href="https://github.com/clap-rs/clap">clap</a> based commands with <a href="https://github.com/carapace-sh/carapace-spec-clap">carapace-spec-clap</a>.</p>
<p><img src="./v0.18/generate.png" alt="" /></p>
<h2 id="scrape"><a class="header" href="#scrape">Scrape</a></h2>
<p>For advanced completion these can further be converted to Go code with <code>carapace --scrape [spec]</code>.</p>
<p><img src="./v0.18/scrape.png" alt="" /></p>
<h2 id="json-schema"><a class="header" href="#json-schema">Json Schema</a></h2>
<p>A <a href="https://json-schema.org/">JSON Schema</a> is now written to <a href="https://pkg.go.dev/os#UserConfigDir"><code>${UserConfigDir}/carapace/schema.json</code></a>.</p>
<p><img src="./v0.18/schema.png" alt="" /></p>
<p>It can be used by adding the following header to a user spec:</p>
<pre><code class="language-yaml"># yaml-language-server: $schema=../schema.json
</code></pre>
<h2 id="windows"><a class="header" href="#windows">Windows</a></h2>
<p><code>$(shell command)</code> is now executed in Powershell on windows.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<a rel="prev" href="../release_notes/v0.19.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.17.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
<a rel="prev" href="../release_notes/v0.19.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
<i class="fa fa-angle-left"></i>
</a>
<a rel="next prefetch" href="../release_notes/v0.17.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
<i class="fa fa-angle-right"></i>
</a>
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="../elasticlunr.min.js"></script>
<script src="../mark.min.js"></script>
<script src="../searcher.js"></script>
<script src="../clipboard.min.js"></script>
<script src="../highlight.js"></script>
<script src="../book.js"></script>
<!-- Custom JS scripts -->
<script src="../asciinema/asciinema-player.min.js"></script>
<script src="../asciinema/load.js"></script>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More