19 dépôts
Interfaces for navigating the abstract syntax tree and structural components of source code.
Distinguishing note: Unlike general search, this leverages Tree-sitter for structural analysis of code nodes.
Explore 19 awesome GitHub repositories matching development tools & productivity · Structural Code Navigation. Refine with filters or upvote what's useful.
mini.nvim is a comprehensive library of independent modules designed to extend Neovim with a wide array of navigation, user interface, and text manipulation tools. It serves as a modular plugin collection, a UI toolkit for creating custom statuslines and notifications, and a package manager for installing and pinning external plugins from Git. The project provides a specialized fuzzy picker framework for filtering files and symbols, an LSP completion engine with interactive snippet expansion, and a dedicated plugin test framework that uses headless editor instances and remote procedure calls
Provides a searchable interface to navigate Tree-sitter nodes and manual pages.
This project is a Vim IDE configuration and plugin suite designed to transform the Vim text editor into a full development environment. It focuses on C++ development by integrating source code indexing and automated plugin management. The environment utilizes compiler backends and abstract syntax trees for semantic code completion and static code analysis. It employs tag files for symbol indexing, enabling rapid navigation between function definitions, class headers, and implementation files. The workspace includes productivity tools such as shorthand snippet expansion, line bookmarking, and
Provides structural navigation for jumping between matching pairs and switching between headers and implementations.
Kreuzberg is a document extraction engine that converts PDFs, Office files, images, and over 90 other formats into clean, structured text and metadata. It is built around a compiled Rust core that can be used as a native library, a command-line tool, a REST API server, or a WebAssembly module for browser-based processing. The system is designed to run entirely on self-hosted infrastructure, with no data leaving the user's environment. What distinguishes Kreuzberg is its breadth of integration surfaces and its pipeline architecture. It exposes extraction capabilities through native bindings fo
Parses functions, classes, imports, and symbols from code files across 306 programming languages for structured analysis.
GhidraMCP is a Model Context Protocol server that exposes Ghidra binary analysis and decompilation functions to external intelligence models. It acts as a bridge that connects the Ghidra reverse engineering suite to external tools through a standardized communication protocol, facilitating automated reverse engineering and software auditing. The project enables the extraction of decompiled code and program structural data to populate the context windows of language models. It features a binary symbol management tool capable of dynamic symbol resolution, allowing method and data names to be up
Provides utilities for listing and navigating methods and classes to determine a binary's organizational layout.
This project is a static code analysis tool that functions as a code unit resolver and source code line mapper. It identifies the specific function or method that contains a given line of code by analyzing the structure of source files without executing the program. The utility maps line numbers to their parent code units by examining the organization of source files and identifying the ownership of specific lines. It determines the boundaries of functions and methods through text-based structural parsing and range detection. These capabilities support source code analysis and static analysi
Supports code navigation by identifying the function responsible for a specific operation via structural analysis.
Tagbar is a Vim plugin that displays a resizable sidebar of code tags parsed by Exuberant Ctags, organized by scope, with cursor-linked highlighting and key-mapped jumps to definitions. It provides a hierarchical view of code elements like functions and classes from the current file, enabling navigation and structural overview directly within the editor. The plugin integrates with Exuberant Ctags to parse source files and extract tag definitions, then organizes those symbols into a tree structure based on their enclosing scope, such as class or function boundaries. It features real-time file
Browses source code structure by showing tags grouped by their enclosing scope.
ts-morph est une bibliothèque de manipulation d'AST TypeScript et un wrapper de haut niveau pour l'API du compilateur TypeScript. Il fournit une interface programmatique pour analyser, modifier et générer du code source TypeScript, servant d'outil pour le refactoring de code automatisé et la génération de code source. La bibliothèque simplifie le processus de navigation et d'inspection des structures de projet en offrant une abstraction orientée objet sur l'API du compilateur sous-jacente. Elle permet la transformation programmatique de bases de code existantes pour automatiser les mises à jour structurelles et les migrations de code en masse. Ses capacités couvrent l'analyse de code statique, la navigation dans les éléments de code et la gestion des fichiers source via l'importation, la génération et la suppression. Le projet intègre la vérification de type et utilise la découverte de fichiers basée sur des globs pour maintenir une représentation en mémoire de la base de code, qui peut ensuite être persistée sur le système de fichiers physique.
Provides programmatic interfaces for navigating the abstract syntax tree to locate and analyze specific code elements.
Zed is a terminal-based code editor built in Rust that provides a full-featured editing experience with familiar keybindings, mouse support, and multiple cursors. It runs entirely in the terminal while offering capabilities typically found in graphical editors, including split panes, a command palette, and integrated language server protocol support for real-time diagnostics, completions, go-to-definition, and code actions across multiple languages. The editor distinguishes itself through a plugin system that runs sandboxed TypeScript plugins in a QuickJS runtime, with an asynchronous bridge
Zed jumps to definitions, references, lines, brackets, bookmarks, and error locations.
python-mode est un plugin IDE Vim qui fournit un ensemble d'outils intégrés pour le développement Python. Il incorpore une interface de débogage pour gérer les points d'arrêt d'exécution et inspecter l'état du programme, un navigateur de documentation pour récupérer les symboles de langage officiels, et un système pour l'analyse statique et la refactorisation structurelle automatisée. Le projet dispose d'un gestionnaire d'environnement dédié qui détecte et utilise des environnements virtuels spécifiques au projet pour assurer la résolution correcte des bibliothèques et de l'interpréteur. Il intègre des outils externes tels que PyLint et Rope pour identifier les erreurs de code et effectuer une refactorisation à l'échelle du projet. Le plugin couvre de vastes capacités de développement, incluant le linting en temps réel, le formatage de code automatisé et la complétion de code intelligente. Il fournit également des outils de navigation structurelle pour sauter entre les définitions, une coloration syntaxique avancée et la possibilité d'exécuter des blocs de code individuels directement depuis l'éditeur.
Provides interfaces for jumping quickly between structural components like classes, methods, and definitions.
Ce projet est un plugin Sublime Text et une extension d'éditeur de développement web qui fonctionne comme un expanseur d'abréviations de balisage. Il permet la création rapide de blocs de code HTML et CSS structurés en transformant des jetons abrégés concis, de type CSS, en balisage complet et feuilles de style. L'outil fournit une automatisation avancée pour les workflows web, incluant la génération d'éléments HTML imbriqués, de noms de classe BEM et de préfixes vendeurs CSS. Il inclut également des utilitaires spécialisés pour générer des dégradés CSS avec des replis de compatibilité navigateur et convertir des chemins d'image en données URL encodées en base64. Au-delà de la génération de code, l'extension couvre la manipulation de la structure de balisage et la navigation. Cela inclut des capacités pour équilibrer les sélections de balises, sauter entre des paires de balises correspondantes, effectuer des calculs arithmétiques dans le code et générer du texte factice pour les tests visuels. Le système est configurable via le mappage d'alias d'abréviation, des définitions d'extraits personnalisées et des extensions de plugin pour modifier les filtres et actions internes.
Moves the selection to the next or previous significant item in the document for faster traversal.
Neo-tree is an extensible UI component for Neovim that functions as a file explorer, project resource manager, and git status browser. It provides a tree-based interface for navigating filesystems, managing open buffers, and organizing document symbols within a side panel. The project is designed as a customizable framework that allows for the integration of external data sources and the implementation of user-defined event handlers. It supports custom tree visuals and component rendering, enabling the display of metadata, custom icons, and third-party plugin data within the tree view. Capab
Enables exploring the hierarchy of definitions and variables to jump to specific code blocks.
lsp-mode is a Language Server Protocol client and IDE feature set for Emacs. It functions as a semantic code analysis tool and JSON-RPC communication layer that connects the editor to external language servers to provide intelligent code completion and real-time diagnostics. The project also serves as a Debug Adapter Protocol client, enabling interactive debugging sessions and breakpoint management. This allows for stepping through code and inspecting variables via a standardized protocol, including support for debugging within Docker containers. The system covers a broad range of developmen
Generates code outlines and structural navigation to help users understand the hierarchy of the current file.
Emmet est un générateur de code de balisage et une boîte à outils de productivité pour le développement web. Il sert de moteur d'expansion qui convertit des abréviations abrégées et des sélecteurs de type CSS en structures HTML, XML et autres structures de balisage complètes. Le projet dispose d'un moteur d'expansion dédié aux abréviations CSS qui transforme des codes de propriétés concis en déclarations de style complètes, incluant la génération automatique de préfixes vendeurs et de dégradés. Il se distingue par un processus d'expansion programmable via des définitions de snippets personnalisés, le mappage d'alias d'abréviations et une extensibilité par script. La boîte à outils couvre un large éventail de capacités, notamment la génération de balisage avec multiplication d'éléments et numérotation itérative, ainsi que des utilitaires d'éditeur pour la navigation structurelle et la sélection équilibrée de balises. Elle fournit également des outils pour la création de feuilles de style CSS, l'ajustement de valeurs numériques et la gestion des médias pour la conversion de données d'image en URL et la mise à jour des dimensions.
Enables rapid movement between matching tags and structural edit points in HTML and CSS files.
ApplicationInspector is a multi-language static analysis tool designed to detect specific features and characteristics within source code. It utilizes a declarative JSON rules engine to identify patterns and structural tags across project directories without requiring the analyzer to be recompiled. The system distinguishes itself through a code version differ that compares two different source paths to report changes in detected features. It also provides utilities for creating and validating custom JSON-based rules, including a validation pipeline to verify syntax and identifier uniqueness.
Features a static analyzer capable of parsing structural components across diverse programming languages.
Ce projet est un framework de configuration Neovim complet et un environnement de développement intégré construit avec une configuration modulaire basée sur Lua. Il fournit un espace de travail cohérent qui orchestre l'esthétique de l'éditeur, les raccourcis clavier et le cycle de vie des plugins pour transformer l'éditeur en un environnement de développement complet. La configuration est conçue comme un environnement de développement polyglotte avec un support dédié pour Python, C++, Lua, Markdown et LaTeX. Il dispose d'une configuration client LSP spécialisée pour l'intelligence de code multi-langage et une suite d'intégration Git pour gérer les flux de travail de contrôle de version et le staging des changements directement dans l'interface. L'environnement couvre un large éventail de capacités, y compris la recherche floue pour la découverte de fichiers et de buffers, la navigation structurelle dans le code et la gestion automatisée des snippets. Il inclut également des outils pour la rédaction de documents techniques avec prévisualisation de mise en page, l'exploration visuelle de projets et des utilitaires pour le formatage de structures de données et la manipulation de texte.
Enables jumping between symbols and managing foldable code blocks using structural analysis of the source code.
rust.vim est un plugin Vim qui fournit un support d'éditeur spécifique au langage pour Rust. Il intègre la coloration syntaxique, la gestion de l'indentation et des configurations d'outils pour améliorer la lisibilité et la compréhension structurelle du code source Rust. Le plugin permet l'exécution de tests ciblés pour des fonctions spécifiques et fournit une intégration avec un terrain de jeu en ligne pour l'expérimentation et le partage de code. Il couvre en outre des capacités pour le formatage de code, la détection d'erreurs statiques et la navigation par symboles pour parcourir les structures de code et sauter entre les définitions. La configuration est gérée via Vimscript.
Integrates with external indexing tools to enable jumping between definitions and declarations via tags.
flash.nvim is a label-based navigation engine and motion plugin for Neovim. It provides a system for fast cursor repositioning by marking targets across the screen with unique characters, allowing for instant movement to specific characters, search matches, and code structures. The plugin extends navigation through Tree-Sitter integration, enabling the identification and selection of parent nodes and structural code blocks. It further distinguishes itself by supporting multi-window cursor movement, allowing users to search for patterns and jump between different files or split windows using a
Provides the ability to jump to and select parent nodes and structural code blocks using Tree-Sitter integration.
nvim-treesitter-context is a Neovim editor extension that provides structural awareness of source files by displaying sticky headers of surrounding code blocks. It utilizes Tree-sitter queries to identify parent functions and classes, keeping them visible at the top of the editor window while scrolling. The tool allows for language rule customization, enabling the definition of specific structural queries to modify how context is detected for different programming languages. Users can also adjust the visual appearance of the context window through custom highlight groups. Beyond visual orien
Provides structural code navigation by jumping the cursor to the start of the surrounding code block.
OpenViking is a multi-tenant context server and knowledge base administration system designed to provide AI agents with persistent long-term memory. It enables the indexing of diverse documents and codebases to support retrieval-augmented generation, allowing agents to recall past interactions, user preferences, and learned experiences across sessions. The project is distinguished by its use of a URI-based virtual filesystem to organize memories, resources, and skills. It implements a tiered context loading system that balances retrieval precision with token budgets by structuring data into a
Exposes tools for AI agents to navigate code structures and generate symbol outlines using a URI-based system.