$ show Hannah-Sten/TeXiFy-IDEA
TeXiFy-IDEA is an IntelliJ IDEA plugin that provides comprehensive LaTeX editing support. It enhances the IntelliJ Platform with features including syntax highlighting, code completion, inspections, refactoring intentions, build execution (supporting pdfLaTeX, XeLaTeX, LuaLaTeX, latexmk, biber), forward/inverse search with PDF viewers, bibliography management (local BibTeX and remote libraries like Zotero/Mendeley), and project structure visualization. The plugin follows IntelliJ Platform SDK conventions with a modular architecture organized around concerns like actions, editing, grammar, indexing, PSI, run configurations, settings, structure view, utilities, and remote library integration. It demonstrates strong software engineering practices through patterns like step-based execution systems, PDF viewer abstraction, magic comment parsing, Kotlin DSL builders for command definitions, and generic caching mechanisms. The plugin is actively maintained with recent commits, regular version updates, dependency management via Dependabot, and comprehensive testing.
The LLM identified 5 files worth highlighting for reuse:
Implements a configurable step-based execution system for LaTeX compilation processes. Separates execution logic from configuration UI through abstract base classes for steps and fragmented editors for step configuration. Allows new build steps (latex, bibtex, makeindex, viewers) to be added without modifying core logic. Demonstrates excellent separation of concerns and extensibility patterns applicable to any configurable build or processing pipeline.
Defines a clean abstraction layer for PDF viewer integration with platform-specific implementations. Provides a PdfViewer interface with concrete implementations for SumatraPDF, Okular, Skim, Evince, Zathura, and other viewers. Encapsulates platform-specific viewer launching and forward/inverse search logic. Demonstrates strong interface design and separation between abstraction and platform-specific concerns, making it reusable in any application needing PDF viewer integration.
Implements a robust parser for special configuration comments in source files (e.g., '%! ...' in LaTeX). Handles parsing of key-value pairs, flags, and complex values from comments with proper error handling and validation. Provides foundation for project-specific tool configuration through inline comments. Demonstrates well-designed parsing logic with clear separation of concerns, making it reusable in any application that needs to read configuration from special comments in source files.
Exhibits excellent use of Kotlin's DSL capabilities for defining LaTeX commands and environments. Provides a type-safe, fluent interface for constructing complex language definitions with validation and default values. Demonstrates advanced Kotlin features including extension functions, lambdas with receivers, and builder patterns. Represents a reusable pattern for defining any configurable entities through a domain-specific language with strong typing and IDE support.
Implements a generic caching service with asynchronous loading and blocking get operations. Separates cache policy from implementation through abstract base class and specific cache implementations (like LatexPackageLocation). Handles cache expiration, refresh strategies, and thread safety. Demonstrates strong caching design principles with proper separation of concerns, making it reusable in any application requiring cached data with async loading capabilities.