# textmate/textmate

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/textmate-textmate).**

14,783 stars · 1,734 forks · Objective-C++ · gpl-3.0

## Links

- GitHub: https://github.com/textmate/textmate
- Homepage: https://macromates.com/
- awesome-repositories: https://awesome-repositories.com/repository/textmate-textmate.md

## Topics

`c-plus-plus` `cocoa` `macos` `objective-c-plus-plus` `texteditor` `textmate`

## Description

TextMate is a programmable text editor designed for software development and project management. It functions as a highly customizable environment where users can define language-specific behaviors, syntax highlighting rules, and automated workflows to suit their individual development needs.

The editor distinguishes itself through a modular, bundle-based extensibility model that allows for deep integration with system shell commands. By piping document buffers through external scripts and command-line tools, users can perform complex text transformations, automate file lifecycle tasks, and build custom project-specific workflows. This architecture is supported by a hierarchical scope-selector system that enables context-aware configuration of key bindings, formatting rules, and syntax definitions.

Beyond its core extensibility, the application provides a comprehensive suite of editing capabilities, including multi-cursor and columnar editing, semantic navigation, and project-wide search and replace. It also features integrated version control support, file system management, and the ability to render interactive user interfaces using embedded web technologies.

The project is implemented in Objective-C++ and provides extensive documentation for creating custom bundles and configuring the editor environment.

## Tags

### Development Tools & Productivity

- [Extensible Text Editors](https://awesome-repositories.com/f/development-tools-productivity/integrated-development-environments/extensible-text-editors.md) — Functions as a modular, extensible text editor that uses bundles to define syntax highlighting, snippets, and shell-based automation for development workflows.
- [Developer Productivity](https://awesome-repositories.com/f/development-tools-productivity/developer-productivity.md) — Provides a highly customizable workspace for software development that integrates version control, file navigation, and automated shell-based task execution.
- [Source Code Editors](https://awesome-repositories.com/f/development-tools-productivity/source-code-editors.md) — Provides a comprehensive environment for writing and maintaining software code with syntax highlighting, language-specific navigation, and powerful text manipulation tools.
- [File Navigation Tools](https://awesome-repositories.com/f/development-tools-productivity/file-navigation-tools.md) — Enables rapid file searching and switching between open or recent documents using a filtered list. ([source](https://macromates.com/textmate/manual/opening-files))
- [Text Editors](https://awesome-repositories.com/f/development-tools-productivity/text-editors.md) — Offers a programmable editing environment that allows users to extend functionality through custom macros, scripts, and language-specific grammar definitions.
- [Multi-Cursor Editing](https://awesome-repositories.com/f/development-tools-productivity/multi-cursor-editing.md) — Manipulates multiple lines or selections simultaneously to apply identical changes across different parts of a document at once. ([source](https://macromates.com/textmate/manual/))
- [Shell Scripting Utilities](https://awesome-repositories.com/f/development-tools-productivity/shell-scripting-utilities.md) — Extends the editor by piping text through external command-line tools and automating workflows with custom shell scripts.
- [Shell Integration](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration.md) — Extends editor functionality by piping document content through external command-line tools and custom shell scripts.
- [Columnar Editing Tools](https://awesome-repositories.com/f/development-tools-productivity/text-editing-shortcuts/columnar-editing-tools.md) — Enables selecting vertical blocks of text to modify multiple lines simultaneously. ([source](https://macromates.com/textmate/manual/text-editing))
- [Text Transformation Utilities](https://awesome-repositories.com/f/development-tools-productivity/text-transformation-utilities.md) — Streamlines repetitive editing tasks using macros, reusable code snippets, and automated triggers that execute on file save.
- [Version Control Integrations](https://awesome-repositories.com/f/development-tools-productivity/version-control-integrations.md) — Integrates version control systems to provide status badges, file tracking, and context-aware actions. ([source](https://macromates.com/textmate/manual/version-control))
- [File Navigation Utilities](https://awesome-repositories.com/f/development-tools-productivity/file-navigation-utilities.md) — Provides tools for browsing local directories and inspecting package contents directly from the editor. ([source](https://macromates.com/textmate/manual/projects))
- [Stream Piping Utilities](https://awesome-repositories.com/f/development-tools-productivity/stream-piping-utilities.md) — Integrates external command-line tools by piping document buffers through system shell commands for text transformation.
- [Text Snippet Managers](https://awesome-repositories.com/f/development-tools-productivity/text-snippet-managers.md) — Expands short triggers into complex code templates using placeholders and dynamic transformations. ([source](https://macromates.com/textmate/manual/))
- [Behavior Configuration](https://awesome-repositories.com/f/development-tools-productivity/behavior-configuration.md) — Configures language-specific behaviors like indentation, folding, and character classification. ([source](https://macromates.com/textmate/manual/settings))
- [Code Execution Environments](https://awesome-repositories.com/f/development-tools-productivity/code-execution-environments.md) — Executes or builds the current document or selection directly within the editor environment. ([source](https://macromates.com/textmate/manual/bundles))
- [Macro Recorders](https://awesome-repositories.com/f/development-tools-productivity/macro-recorders.md) — Records and replays sequences of keystrokes to automate repetitive editing tasks. ([source](https://macromates.com/textmate/manual/text-editing))
- [Task Automation Scripts](https://awesome-repositories.com/f/development-tools-productivity/task-automation-scripts.md) — Triggers specific scripts automatically on file save to streamline repetitive processing. ([source](https://macromates.com/textmate/manual/commands))
- [Tabbed Window Organization](https://awesome-repositories.com/f/development-tools-productivity/window-managers/tabbed-window-organization.md) — Groups multiple open documents into a single window using tabs with support for splitting and merging. ([source](https://macromates.com/textmate/manual/projects))
- [Text and Block Manipulation Tools](https://awesome-repositories.com/f/development-tools-productivity/code-editors-ides/extension-ecosystems-management/editor-ide-extensions/text-and-block-manipulation-tools.md) — Provides tools to collapse and expand code blocks for improved navigation. ([source](https://macromates.com/textmate/manual/presentation))
- [File Pattern Matching](https://awesome-repositories.com/f/development-tools-productivity/file-pattern-matching.md) — Filters project files using pattern matching that supports negations, nested braces, and directory-aware wildcards. ([source](https://macromates.com/textmate/manual/references))
- [Fuzzy Search Interfaces](https://awesome-repositories.com/f/development-tools-productivity/fuzzy-search-interfaces.md) — Provides a fuzzy search interface to quickly locate and execute bundle commands. ([source](https://macromates.com/textmate/manual/bundles))
- [Multi-Key Bindings](https://awesome-repositories.com/f/development-tools-productivity/input-binding-libraries/multi-key-bindings.md) — Enables mapping keyboard shortcuts to specialized editor actions and navigation commands. ([source](https://macromates.com/textmate/manual/settings))
- [Project Configuration](https://awesome-repositories.com/f/development-tools-productivity/project-configuration.md) — Provides hierarchical configuration files to define project-specific settings and file behaviors. ([source](https://macromates.com/textmate/manual/settings))

### Software Engineering & Architecture

- [Bundle-Based Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/modular-extension-architectures/bundle-based-extensibility.md) — Provides a modular bundle-based system for extending editor functionality with language grammars, snippets, and shell commands.
- [Plugin Extenders](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/plugin-extenders.md) — Uses a modular bundle-based architecture to extend editor functionality with custom grammars and commands. ([source](https://macromates.com/textmate/manual/))
- [Language Support Definitions](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/language-support-definitions.md) — Defines syntax grammars and behavior rules to provide specialized editing features for any programming language or markup format.
- [Scope-Selector Configurations](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/scope-and-hierarchy-management/hierarchical-scopes/scope-selector-configurations.md) — Uses hierarchical scope selectors to apply context-aware settings, key bindings, and formatting rules dynamically.
- [Project Organization](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/repository-maintenance/project-organization.md) — Organizes local directories as projects to enable file browsing and bulk operations. ([source](https://macromates.com/textmate/manual/))
- [Syntax Validation Linters](https://awesome-repositories.com/f/software-engineering-architecture/syntax-tree-analysis/syntax-inspection/syntax-validation-linters.md) — Validates code syntax against language-specific rules to identify structural errors. ([source](https://macromates.com/textmate/manual/bundles))
- [Asynchronous Task Processing](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-processing.md) — Maintains editor responsiveness by offloading long-running shell tasks and external scripts to background processes.

### Data & Databases

- [Text Search and Replace](https://awesome-repositories.com/f/data-databases/text-pattern-matching/text-search-and-replace.md) — Locates and updates text patterns within individual documents or across entire project folders using standard strings or regular expressions. ([source](https://macromates.com/textmate/manual/searching))
- [Text Formatting Filters](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/text-nlp-preprocessing/text-formatting-filters.md) — Pipes selected text through external shell commands to process, format, or transform content. ([source](https://macromates.com/textmate/manual/text-editing))
- [Auto-Save Triggers](https://awesome-repositories.com/f/data-databases/local-persistence-layers/annotation-persistence-layers/annotation-save-interceptors/auto-save-triggers.md) — Triggers file saves automatically when the application loses focus to ensure changes are persisted. ([source](https://macromates.com/textmate/manual/saving-files))

### User Interface & Experience

- [Syntax Highlighting](https://awesome-repositories.com/f/user-interface-experience/syntax-highlighting.md) — Identifies code structures using hierarchical regular expression patterns to apply syntax highlighting.
- [Semantic Navigation Hooks](https://awesome-repositories.com/f/user-interface-experience/component-utilities/navigation-semantic-hooks/semantic-navigation-hooks.md) — Allows moving the caret or extending selections across words, sub-words, and document symbols based on syntax. ([source](https://macromates.com/textmate/manual/text-editing))
- [View Customizations](https://awesome-repositories.com/f/user-interface-experience/view-customizations.md) — Displays interactive web-based views within the editor environment to present command results or custom user interfaces using standard web technologies. ([source](https://macromates.com/textmate/manual/html-output))
- [Editor Themes](https://awesome-repositories.com/f/user-interface-experience/editor-themes.md) — Applies visual themes to rendered content to ensure consistent appearance across the editor interface and generated output views. ([source](https://macromates.com/textmate/manual/html-output))
- [Search Filters](https://awesome-repositories.com/f/user-interface-experience/search-filters.md) — Limits project-wide searches to specific file types or directory paths using glob patterns and optional symbolic link traversal. ([source](https://macromates.com/textmate/manual/searching))

### DevOps & Infrastructure

- [Project Directory Management](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/project-management/project-directory-management.md) — Defines project root directories to scope file searches and automated workflows to a specific workspace. ([source](https://macromates.com/textmate/manual/projects))
- [Save-Triggered Automations](https://awesome-repositories.com/f/devops-infrastructure/automated-action-execution/save-triggered-automations.md) — Executes custom scripts or commands automatically whenever a file is saved to perform linting, formatting, or synchronization. ([source](https://macromates.com/textmate/manual/saving-files))
- [External Command Executors](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/external-command-executors.md) — Runs external scripts or system tools against document content to integrate external workflows. ([source](https://macromates.com/textmate/manual/))

### Content Management & Publishing

- [Content Processing](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/content-processing.md) — Pipes document buffers through external commands for real-time transformation and analysis. ([source](https://macromates.com/textmate/manual/commands))

### Web Development

- [Dynamic Content Insertion](https://awesome-repositories.com/f/web-development/content-insertion-utilities/dynamic-content-insertion.md) — Injects predefined text blocks into a document using triggers, supporting dynamic variables, interactive placeholders, and automated data transformations. ([source](https://macromates.com/textmate/manual/snippets))
- [Embedded Web Views](https://awesome-repositories.com/f/web-development/embedded-web-views.md) — Renders interactive dialogs and custom user interfaces using embedded web technologies.
- [Buffer Completion Systems](https://awesome-repositories.com/f/web-development/content-insertion-utilities/dynamic-content-insertion/buffer-completion-systems.md) — Suggests and inserts matching words based on the current document context and defined character classes. ([source](https://macromates.com/textmate/manual/text-editing))

### Business & Productivity Software

- [File Workflow Automations](https://awesome-repositories.com/f/business-productivity-software/file-workflow-automations.md) — Automates file lifecycle tasks like setting permissions or formatting content upon saving. ([source](https://macromates.com/textmate/manual/concepts))
- [Incremental Searchers](https://awesome-repositories.com/f/business-productivity-software/rapid-search-utilities/incremental-searchers.md) — Highlights matches in real-time as characters are typed into a dedicated search field for rapid navigation within a document. ([source](https://macromates.com/textmate/manual/searching))
- [Related File Cyclers](https://awesome-repositories.com/f/business-productivity-software/terminal-file-managers/file-association-handlers/related-file-cyclers.md) — Switches between associated files like headers and implementations based on configurable naming patterns. ([source](https://macromates.com/textmate/manual/opening-files))

### System Administration & Monitoring

- [Document Bookmarks](https://awesome-repositories.com/f/system-administration-monitoring/multi-pane-terminal-managers/pane-bookmarking/document-bookmarks.md) — Enables marking specific lines for quick navigation and cycling through saved locations within a file. ([source](https://macromates.com/textmate/manual/text-editing))
