20 个仓库
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 20 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 is a TypeScript AST manipulation library and a high-level wrapper for the TypeScript compiler API. It provides a programmatic interface for analyzing, modifying, and generating TypeScript source code, serving as a tool for automated code refactoring and source code generation. The library simplifies the process of navigating and inspecting project structures by offering an object-oriented abstraction over the underlying compiler API. It allows for the programmatic transformation of existing codebases to automate structural updates and bulk code migrations. Its capabilities cover sta
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 是一个 Vim IDE 插件,为 Python 开发提供了集成的工具集。它包含一个用于管理执行断点和检查程序状态的调试界面、一个用于检索官方语言符号的文档浏览器,以及一个用于静态分析和自动化结构重构的系统。 该项目具有专用的环境管理器,可检测并使用项目特定的虚拟环境,以确保正确的库和解释器解析。它集成了 PyLint 和 Rope 等外部工具,以识别代码错误并执行项目范围的重构。 该插件涵盖了广泛的开发功能,包括实时代码检查(linting)、自动化代码格式化和智能代码补全。它还提供用于在定义之间跳转的结构化导航工具、高级语法高亮显示,以及直接从编辑器执行单个代码块的能力。
Provides interfaces for jumping quickly between structural components like classes, methods, and definitions.
This project is a Sublime Text plugin and web development editor extension that functions as a markup abbreviation expander. It allows for the rapid creation of structured HTML and CSS code blocks by transforming concise, CSS-like shorthand tokens into full markup and stylesheets. The tool provides advanced automation for web workflows, including the generation of nested HTML elements, BEM class names, and CSS vendor prefixes. It also includes specialized utilities for generating CSS gradients with browser compatibility fallbacks and converting image paths into base64 encoded data URLs. Beyo
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 是一个标记代码生成器和 Web 开发生产力工具包。它作为一个扩展引擎,将简写缩写和类似 CSS 的选择器转换为完整的 HTML、XML 和其他标记结构。 该项目具有专用的 CSS 简写扩展引擎,可将简洁的属性代码转换为完整的样式声明,包括自动生成厂商前缀和渐变。它通过自定义代码片段定义、缩写别名映射和基于脚本的可扩展性,提供了可编程的扩展过程。 该工具包涵盖了广泛的功能,包括带有元素乘法和迭代编号的标记生成,以及用于结构导航和平衡标签选择的编辑器实用程序。它还提供了用于 CSS 样式表编写、数值调整以及用于图像数据 URL 转换和尺寸更新的媒体处理工具。
Enables rapid movement between matching tags and structural edit points in HTML and CSS files.
ApplicationInspector 是一个多语言静态分析工具,旨在检测源代码中的特定功能和特征。它利用声明式 JSON 规则引擎来识别项目目录中的模式和结构标签,而无需重新编译分析器。 该系统通过代码版本差异比较器脱颖而出,该比较器比较两个不同的源路径以报告检测到的功能变化。它还提供用于创建和验证自定义基于 JSON 的规则的实用程序,包括用于验证语法和标识符唯一性的验证流水线。 该工具涵盖了广泛的能力领域,包括代码功能发现、软件组件审计以及通过基于 glob 的过滤进行分析范围管理。结果可以导出为 HTML、Markdown 或 JSON 格式的摘要。 提供了用于自动化规则语法验证和在不同项目迭代之间执行版本比较的命令行实用程序。
Features a static analyzer capable of parsing structural components across diverse programming languages.
本项目是一个全面的 Neovim 配置框架和集成开发环境,采用模块化的 Lua 设置构建。它提供了一个协调编辑器美学、快捷键和插件生命周期的统一工作空间,将编辑器转变为功能齐全的开发环境。 该配置被设计为一个多语言开发环境,专门支持 Python、C++、Lua、Markdown 和 LaTeX。它具有用于多语言代码智能的专用 LSP 客户端配置,以及用于管理版本控制工作流和直接在界面内暂存更改的 Git 集成套件。 该环境涵盖了广泛的能力,包括用于文件和缓冲区发现的模糊搜索、结构化代码导航以及自动化代码片段管理。它还包括用于技术文档编写的布局预览、可视化项目探索以及用于数据结构格式化和文本操作的实用工具。
Enables jumping between symbols and managing foldable code blocks using structural analysis of the source code.
rust.vim 是一个 Vim 插件,提供针对 Rust 的语言特定编辑器支持。它集成了语法高亮、缩进管理和工具配置,以提高 Rust 源代码的可读性和结构理解。 该插件支持针对特定函数的定向测试执行,并提供与在线 Playground 的集成以进行代码实验和共享。 它进一步涵盖了代码格式化、静态错误检测以及用于浏览源代码结构和在定义之间跳转的符号导航功能。 配置通过 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.
Vim-matchup is a plugin for the Vim and Neovim text editors that provides advanced structural code navigation and manipulation. It functions as an extension to standard editor motions, enabling users to jump between, select, and modify matching language constructs and nested code blocks with high precision. The plugin distinguishes itself by utilizing language-specific syntax trees to track and identify corresponding delimiters and keywords. By integrating with syntax-aware engines, it maintains structural accuracy even in complex source files, while offering a fallback pattern-matching mecha
Displays breadcrumb-style navigation paths by identifying successive matching words within nested code structures.