{"id":50665166,"url":"https://github.com/macino/tvide","last_synced_at":"2026-06-08T05:32:29.055Z","repository":{"id":356271247,"uuid":"1231689494","full_name":"macino/tvide","owner":"macino","description":"New approach to IDE in turbovision","archived":false,"fork":false,"pushed_at":"2026-05-07T10:07:21.000Z","size":3067,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T11:38:07.497Z","etag":null,"topics":["cpp17","ide","libvterm","ncurses","php-ide","rhide","syntax-highlighting","terminal-ide","text-editor","tui","turbo-vision","turbovision","web-development"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-07T07:35:48.000Z","updated_at":"2026-05-07T11:27:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/macino/tvide","commit_stats":null,"previous_names":["macino/tvide"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/macino/tvide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macino%2Ftvide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macino%2Ftvide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macino%2Ftvide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macino%2Ftvide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macino","download_url":"https://codeload.github.com/macino/tvide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macino%2Ftvide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34050224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp17","ide","libvterm","ncurses","php-ide","rhide","syntax-highlighting","terminal-ide","text-editor","tui","turbo-vision","turbovision","web-development"],"created_at":"2026-06-08T05:32:28.315Z","updated_at":"2026-06-08T05:32:29.044Z","avatar_url":"https://github.com/macino.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TVIDE — Turbo Vision IDE\n\n**IMPORTANT: This is work in progress and more of a showcase than usable app.**\n\nA modern text-mode IDE for PHP and full-stack web development. Built on\n[**magiblot/tvision 2.0**](https://github.com/magiblot/tvision) — the actively-maintained\nfork of Borland's classic Turbo Vision — and inspired by RHIDE.\n\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n![C++17](https://img.shields.io/badge/C%2B%2B-17-blue.svg)\n\n## Demo\n\n![tvide demo](docs/screenshots/demo.gif)\n\n## Screenshots\n\nDefault workspace — file tree, window list, structure panel pre-opened:\n\n![startup](docs/screenshots/01-startup.png)\n\nEditing a file with markdown syntax highlighting and live structure outline:\n\n![editing markdown](docs/screenshots/02-editing.png)\n\nEditing C++ source with syntax highlighting, line gutter, and the open-window\nlist panel:\n\n![editing code](docs/screenshots/03-code.png)\n\n## Features\n\n### Editor\n\n- Syntax highlighting for **20+ languages** (see [supported languages](#supported-languages))\n- Line numbers gutter, whitespace visualization (tabs `»`, spaces `·`, EOL `¶`)\n- Multi-document editing (tile / cascade / window list)\n- Find \u0026 Replace with history\n- Go to Line, Find in Files (regex + case), Find Symbol across project\n- Bracket matching, auto-close, full undo\n- Configurable via Options dialog (`Tools → Options`)\n\n### IDE shell\n\n- RHIDE-style menu-driven interface\n- File tree panel — sortable (name / date, asc / desc, dirs-first toggle)\n- Structure panel — sortable (line / name / kind, asc / desc)\n- Window list panel — switch between open editors and terminals\n- Real terminal windows (libvterm-backed; runs vim, htop, less, etc.)\n- Messages / output panel\n- Status bar with keyboard shortcuts\n\n### Project support\n\n- **JetBrains-compatible** — opens `.idea` directory projects from\n  IntelliJ / PhpStorm / WebStorm, parses `modules.xml`, `.name`, `vcs.xml`, `.iml`\n- Custom directory browser dialog with sort options\n- Auto-detects VCS\n\n## Supported languages\n\nWeb stack: **PHP**, **HTML**, **CSS / SCSS / LESS**, **JavaScript / JSX**,\n**TypeScript / TSX**, **Vue SFC**, **JSON**, **Markdown**, **YAML**, **SQL**,\n**XML / SVG**, **Twig / Blade / Latte**.\n\nSystems: **C / C++** (with `#`-preprocessor), **Java**, **C#**, **Go**, **Rust**,\n**Kotlin**, **Swift**, **Lua**.\n\nScripts \u0026 data: **Python**, **Shell** (sh / bash / zsh / fish), **Ruby**.\n\nConfig: **Dockerfile**, **Makefile**, **INI**, **TOML**, **`.env`**, `.conf`,\n`.properties`.\n\n| Extension | Language |\n|-----------|----------|\n| `.php`, `.phtml` | PHP |\n| `.html`, `.htm` | HTML |\n| `.css`, `.scss`, `.less`, `.sass` | CSS |\n| `.js`, `.jsx`, `.mjs`, `.cjs` | JavaScript |\n| `.ts`, `.tsx` | TypeScript |\n| `.vue` | Vue SFC |\n| `.json`, `.jsonc` | JSON |\n| `.md`, `.markdown` | Markdown |\n| `.yml`, `.yaml` | YAML |\n| `.sql` | SQL |\n| `.xml`, `.svg`, `.xsl` | XML |\n| `.twig`, `.blade`, `.latte` | Template |\n| `.c`, `.cpp`, `.h`, `.hpp`, `.cc`, `.hh` | C / C++ |\n| `.java` | Java |\n| `.cs` | C# |\n| `.go` | Go |\n| `.rs` | Rust |\n| `.kt`, `.kts` | Kotlin |\n| `.swift` | Swift |\n| `.lua` | Lua |\n| `.py`, `.pyw`, `.pyi` | Python |\n| `.sh`, `.bash`, `.zsh`, `.fish` | Shell |\n| `.rb`, `.rake`, `.gemspec` | Ruby |\n| `Dockerfile`, `Containerfile` | Dockerfile |\n| `Makefile`, `*.mk` | Makefile |\n| `.ini`, `.cfg`, `.conf`, `.properties` | INI |\n| `.toml` | TOML |\n| `.env`, `.env.*` | dotenv |\n\n## Keyboard shortcuts\n\n| Key | Action |\n|-----|--------|\n| F2 | Save |\n| F3 | Open file |\n| F4 | Search again |\n| F5 | Zoom window |\n| F6 | Next window |\n| F10 | Menu |\n| Ctrl-N | New file |\n| Ctrl-T | New terminal |\n| Ctrl-W | Close file |\n| Ctrl-F | Find |\n| Ctrl-H | Replace |\n| Ctrl-G | Go to line |\n| Ctrl-A | Select all |\n| Ctrl-Z | Undo |\n| Shift-F7 | Find in files |\n| Ctrl-F12 | Find symbol |\n| Alt-W | Window list |\n| Alt-X | Exit |\n\nWhen the file-tree panel has focus: `s` cycles sort modes, `d` toggles\n\"directories first\".\n\n## Install\n\nSee [INSTALL.md](INSTALL.md) for full install / build instructions.\n\nQuick version (Debian / Ubuntu):\n\n```bash\nsudo apt install build-essential cmake libncurses-dev libgpm-dev perl\ngit clone --recursive https://github.com/macino/tvide.git\ncd tvide\ncmake -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build -j$(nproc)\n./build/tvide\n```\n\nIf you forgot `--recursive`, run `git submodule update --init --recursive`.\n\n## Usage\n\n```bash\n./build/tvide                                  # open empty IDE\n./build/tvide src/index.php public/style.css   # open files\n./build/tvide /path/to/project                 # open project directory\n```\n\nOr from the menu: `Project → Open project...` to pick a directory with sort\noptions; `File → Open` for individual files.\n\n## Architecture\n\n```\nsrc/\n├── main.cpp              # entry point\n├── app.h / app.cpp       # TVIDEApp, menus, event dispatch, idle, layout\n├── editor/               # syntax-highlighted editor + options dialog\n├── syntax/               # one lexer per language family\n├── dialogs/              # find / goto / findsymbol / openproject / about\n├── project/              # JetBrains .idea parser\n├── panels/               # filetree / structure / messages / winlist / terminal\n└── tvterm-core/          # PTY + libvterm bridge (terminal windows)\n```\n\n## Credits\n\n- [**magiblot/tvision 2.0**](https://github.com/magiblot/tvision) — modern Turbo Vision port (MIT)\n- [**neovim/libvterm**](https://github.com/neovim/libvterm) — terminal emulator (MIT)\n- [tvterm](https://github.com/magiblot/tvterm) — PTY/vterm bridge code adapted for tvision\n\n## License\n\nMIT License — see [LICENSE](LICENSE) for details. Bundled tvision and libvterm\nare used under their respective licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacino%2Ftvide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacino%2Ftvide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacino%2Ftvide/lists"}