Skip to content

itapitanga/itapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

itapi

Editor de texto desktop leve em Ruby + GTK3, inspirado no Zed e no VS Code.

Ruby GTK License

Funcionalidades

  • 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 com Vte::Terminal`, preserva sessão
  • Busca no projeto (Ctrl+Shift+F) — rg ou grep como 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 fonteCtrl+= / Ctrl+- / Ctrl+0, sincronizado entre abas
  • Word wrap — toggle com Alt+Z
  • Múltiplas janelasCtrl+Shift+N
  • Recent files — últimos 20 arquivos persistidos em ~/.config/itapi/recent_files.json
  • Tema escuro — estilo VS Code (#1e1e1e)

Instalação

Dependências do sistema

Ubuntu / Debian

sudo apt install libgtk-3-dev libgtksourceview-3.0-dev libvte-2.91-dev ruby-dev

Fedora / RHEL

sudo dnf install gtk3-devel gtksourceview3-devel vte291-devel ruby-devel

Arch Linux

sudo pacman -S gtk3 gtksourceview3 vte3 ruby

Gems e execução

git 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 atual

AppImage (sem Ruby no sistema)

bash packaging/build-appimage.sh
./itapi-0.1.0-x86_64.AppImage

O AppImage embute o Ruby e as gems; depende apenas de GTK3 e GtkSourceView3 do sistema.

LSP — Servidores suportados

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

Atalhos

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

Distribuição

bash packaging/build-appimage.sh   # AppImage (~36 MB)
bash packaging/build-deb.sh        # .deb (Debian/Ubuntu)
bash packaging/build-rpm.sh        # .rpm (Fedora/RHEL)

Estrutura do projeto

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

Licença

MIT

About

a text editor crafted in ruby

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors