Editor de texto desktop leve em Ruby + GTK3, inspirado no Zed e no VS Code.
- Abas — múltiplos arquivos, rótulo com
●para alterações não salvas - Syntax highlight — GtkSourceView3, detecção automática por extensão (150+ linguagens)
- Find & Replace (
Ctrl+F) — busca incremental com highlight, replace/replace-all, case-sensitive, contador - Command Palette (
Ctrl+Shift+P) — busca fuzzy em todos os comandos com atalhos - File Finder (
Ctrl+P) — busca fuzzy de arquivos no projeto (detecta raiz pelo.git) - Sidebar (
Ctrl+B) — árvore de arquivos com lazy-load, ícones por tipo, tooltip com caminho completo - Breadcrumbs — caminho relativo ao projeto na barra de título (
projeto / src / arquivo.rb) - Minimap — prévia condensada do arquivo à direita (via
GtkSource::Map) - Git gutter — indicadores
+(adicionado) /~(modificado) /-(removido) por linha - Git blame — autor e data do commit na status bar ao mover o cursor (debounce 800ms)
- Terminal integrado (
Ctrl+\``) — painel inferior comVte::Terminal`, preserva sessão - Busca no projeto (
Ctrl+Shift+F) —rgougrepcomo backend, resultados clicáveis - LSP — Language Server Protocol:
- Diagnósticos em tempo real (erros e warnings sublinhados)
- Autocomplete (
Ctrl+Space) — popover abaixo do cursor - Go to Definition (
F12) - Find References (
Shift+F12) — lista de ocorrências clicável - Hover Docs — documentação inline sobre o símbolo
- Seletor de linguagem — clique na linguagem da status bar
- Zoom de fonte —
Ctrl+=/Ctrl+-/Ctrl+0, sincronizado entre abas - Word wrap — toggle com
Alt+Z - Múltiplas janelas —
Ctrl+Shift+N - Recent files — últimos 20 arquivos persistidos em
~/.config/itapi/recent_files.json - Tema escuro — estilo VS Code (
#1e1e1e)
Ubuntu / Debian
sudo apt install libgtk-3-dev libgtksourceview-3.0-dev libvte-2.91-dev ruby-devFedora / RHEL
sudo dnf install gtk3-devel gtksourceview3-devel vte291-devel ruby-develArch Linux
sudo pacman -S gtk3 gtksourceview3 vte3 rubygit clone https://github.com/itapitanga/itapi
cd itapi
bundle install
ruby bin/itapi # editor em branco
ruby bin/itapi arquivo.rb # abre um arquivo
ruby bin/itapi . # file chooser no diretório atualbash packaging/build-appimage.sh
./itapi-0.1.0-x86_64.AppImageO AppImage embute o Ruby e as gems; depende apenas de GTK3 e GtkSourceView3 do sistema.
Instale o servidor da linguagem desejada — o itapi detecta e inicia automaticamente:
| Linguagem | Instalação |
|---|---|
| Ruby | gem install ruby-lsp |
| Python | pip install python-lsp-server |
| JavaScript / TypeScript | npm i -g typescript-language-server typescript |
| C / C++ | sudo apt install clangd |
| Go | go install golang.org/x/tools/gopls@latest |
| Rust | rustup component add rust-analyzer |
| Atalho | Ação |
|---|---|
Ctrl+T / Ctrl+N |
Nova aba |
Ctrl+W |
Fechar aba |
Ctrl+Tab / Ctrl+Shift+Tab |
Próxima / anterior aba |
Ctrl+O |
Abrir arquivo |
Ctrl+S |
Salvar |
Ctrl+Shift+S |
Salvar como |
Ctrl+Shift+N |
Nova janela |
Ctrl+F |
Find bar |
Ctrl+P |
File finder |
Ctrl+Shift+P |
Command palette |
Ctrl+Shift+F |
Buscar no projeto |
Ctrl+B |
Toggle sidebar |
| `Ctrl+`` | Toggle terminal |
Ctrl+Space |
Autocomplete (LSP) |
F12 |
Go to Definition (LSP) |
Shift+F12 |
Find References (LSP) |
Ctrl+= / Ctrl+- |
Zoom in / out |
Ctrl+0 |
Reset zoom |
Alt+Z |
Toggle word wrap |
Ctrl+Z / Ctrl+Shift+Z |
Desfazer / Refazer |
Ctrl+A |
Selecionar tudo |
Ctrl+Q / Alt+F4 |
Sair |
bash packaging/build-appimage.sh # AppImage (~36 MB)
bash packaging/build-deb.sh # .deb (Debian/Ubuntu)
bash packaging/build-rpm.sh # .rpm (Fedora/RHEL)bin/itapi executável principal
lib/itapi/
app.rb bootstrap Gtk::Application
window.rb janela principal — integra todos os módulos
tab_manager.rb Gtk::Notebook + TabEntry structs
editor.rb GtkSource::View wrapper (fonte, wrap, zoom)
file_manager.rb open/save/new com callbacks
find_bar.rb GtkSource::SearchContext (find/replace)
command_palette.rb modal fuzzy de comandos
file_finder.rb fuzzy search de arquivos no projeto
file_tree.rb sidebar TreeView lazy-load
lang_selector.rb seletor de syntax highlight
recent_files.rb persistência JSON em ~/.config/itapi/
git_gutter.rb git diff → marks coloridos no gutter
git_blame.rb git blame debounced na status bar
terminal_panel.rb Vte::Terminal integrado
project_search.rb busca no projeto via rg/grep
lsp_client.rb JSON-RPC LSP client + LspManager
autocomplete.rb Gtk::Popover de completions
diagnostics.rb tags de erro/warning no buffer
keybindings.rb key-press-event handler centralizado
assets/style.css tema escuro completo
packaging/
build-appimage.sh AppImage autocontido
build-deb.sh pacote .deb
build-rpm.sh pacote .rpm
io.github.itapitanga.itapi.yml Flathub manifest
MIT