awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
T

ternjs/tern

0
View on GitHub↗
4,240 stars·371 forks·JavaScript·MIT·12 vues

Tern

Tern est un analyseur de code indépendant de l'éditeur et un moteur d'analyse statique pour JavaScript. Il fonctionne comme un serveur de langage qui fournit une intelligence sémantique en analysant le code source en arbres de syntaxe abstraits pour déduire les types et résoudre les symboles sans nécessiter d'annotations de type manuelles.

Le moteur se distingue par l'utilisation de définitions de type basées sur JSON, qui lui permettent de décrire les signatures de bibliothèques et les dépendances externes sans avoir besoin du code source original. Il dispose également d'un système de plugins qui permet l'extension des fonctionnalités du serveur pour prendre en charge des loaders ou frameworks personnalisés.

Le projet couvre de larges domaines de capacités incluant la navigation dans le code, le refactoring et l'autocomplétion dans l'éditeur. Il fournit des services tels que la localisation des définitions de symboles, la recherche de références de code et l'offre d'indices et de complétions d'arguments de fonction basés sur les types d'expression déduits.

Features

  • Language Intelligence Services - Provides deep semantic analysis of JavaScript code to enable advanced navigation and understanding in editors.
  • JSON Library Type Definitions - Utilizes JSON-based type definitions to describe library signatures and external dependencies without needing original source code.
  • Semantic Code Analyzers - Performs semantic analysis to resolve symbols and find definitions and references within JavaScript code.
  • Code Completion - Recommends variables and keywords at the cursor based on inferred types and documentation metadata.
  • Editor Code Navigation - Provides essential capabilities for jumping to definitions, finding references, and renaming symbols across files.
  • JavaScript Language Servers - Implements a backend language server that provides completion, symbol resolution, and refactoring for JavaScript.
  • Language Server Implementations - Functions as an editor-independent analysis engine providing language intelligence services via a common interface.
  • Custom Type Definitions - Uses JSON-based signatures to describe external library types when the original source code is unavailable.
  • JavaScript Static Analysis - Analyzes JavaScript source code without execution to infer variable types and ensure project consistency.
  • JavaScript Static Analyzers - Functions as a static analysis engine that parses JavaScript into abstract syntax trees to provide semantic intelligence.
  • Static Type Inference - Determines data types by analyzing variable and property contexts without requiring manual type annotations.
  • Symbol Definition Resolution - Locates the original declaration of a variable, function, or class by analyzing semantic information.
  • Static Source Code Type Inference - Implements a core engine that infers JavaScript types by analyzing the abstract syntax tree of source code.
  • Symbol Resolution - Provides a mechanism to map identifiers to their original declarations by analyzing semantic and type information.
  • Expression Type Resolution - Determines the expected data types of expressions during the static analysis phase.
  • Code Autocomplete Engines - Provides context-aware code completions for symbols and properties as the user types.
  • Code Refactoring Tools - Provides capabilities to rename symbols and restructure code while maintaining logical consistency.
  • Code Reference Locators - Implements the ability to search the syntax tree and locate every occurrence of a specific variable or property.
  • External Dependency Resolvers - Locates and prepares external code dependencies using standard resolution strategies.
  • JavaScript Symbol Resolvers - Provides the capability to locate variable definitions and find all references to specific symbols across a project.
  • Type Determination - Retrieves the resulting data type of specific code expressions without executing the code.
  • Expression Type Inspectors - Inspects and reports the static type of specific code expressions to assist with debugging.
  • Function Argument Hints - Displays expected parameter types and descriptions when a function is invoked to ensure correct usage.
  • Module Path Resolution - Implements rules for locating external code dependencies using industry-standard path and naming patterns.
  • Parameter Usage Hints - Displays expected arguments for functions to help users call them with the correct parameters.
  • User-Defined Types - Allows specifying function signatures and types via a structured format to describe external libraries.
  • Automatic Variable Type Inference - Identifies the inferred type of specific expressions to ensure data consistency and correctness.
  • Sponsored Projects - Funded through a community-driven crowdfunding campaign.
  • Sustainable Project Examples - Releases language expansion packs via crowdfunded campaigns.

Historique des stars

Graphique de l'historique des stars pour ternjs/ternGraphique de l'historique des stars pour ternjs/tern

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Tern

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Tern.
  • luals/lua-language-serverAvatar de LuaLS

    LuaLS/lua-language-server

    4,298Voir sur GitHub↗

    lua-language-server is a static analysis tool and type checker for the Lua language that implements the Language Server Protocol. It provides a system for detecting type mismatches, unused code, and logic errors in source files. The project features an inference-based type system that deduces variable types and supports optional annotations and meta files to enforce type safety. It allows for the definition of custom types and function signatures, including support for overloads and member visibility controls. The server provides a broad set of IDE capabilities, including real-time code auto

    Luahacktoberfestlanguage-serverlpeg
    Voir sur GitHub↗4,298
  • myriad-dreamin/tinymistAvatar de Myriad-Dreamin

    Myriad-Dreamin/tinymist

    2,907Voir sur GitHub↗

    Tinymist is a comprehensive suite of tools for Typst document authoring, serving as a language server, document compiler, and project manager. It provides a standardized language service via the Language Server Protocol to enable editor features such as autocompletion, navigation, and semantic highlighting. The project distinguishes itself by integrating a TCP-based live preview server for real-time visual rendering and an advanced static analysis tool that utilizes abstract syntax trees and bidirectional type checking. It also includes a project management system capable of handling multi-fi

    Rustdapdap-serverformatter
    Voir sur GitHub↗2,907
  • rust-lang/rlsAvatar de rust-lang

    rust-lang/rls

    3,509Voir sur GitHub↗

    RLS is a language server that provides language intelligence for the Rust programming language. It implements the Language Server Protocol to enable a standardized communication layer between the Rust compiler and various editor clients. The project focuses on providing real-time code completions, symbol navigation, and type information. It also supports automated structural changes, such as workspace-wide symbol renaming, to maintain semantic correctness during refactoring. The system incorporates static code analysis for linting and formatting, alongside a mechanism for incremental compila

    Rustidelanguage-server-protocolrust
    Voir sur GitHub↗3,509
  • rust-lang/rust-by-exampleAvatar de rust-lang

    rust-lang/rust-by-example

    8,026Voir sur GitHub↗

    This project is an interactive programming education resource and tutorial designed for learning the Rust programming language and systems programming concepts. It provides a collection of runnable and editable code examples that serve as a practical reference for language syntax and implementation. The resource features an interactive code sandbox that allows users to execute and test code snippets in real time. It emphasizes the verification of technical accuracy by executing embedded code blocks during the build process to ensure all examples remain functional. The content covers a compre

    Handlebars
    Voir sur GitHub↗8,026
Voir les 30 alternatives à Tern→

Questions fréquentes

Que fait ternjs/tern ?

Tern est un analyseur de code indépendant de l'éditeur et un moteur d'analyse statique pour JavaScript. Il fonctionne comme un serveur de langage qui fournit une intelligence sémantique en analysant le code source en arbres de syntaxe abstraits pour déduire les types et résoudre les symboles sans nécessiter d'annotations de type manuelles.

Quelles sont les fonctionnalités principales de ternjs/tern ?

Les fonctionnalités principales de ternjs/tern sont : Language Intelligence Services, JSON Library Type Definitions, Semantic Code Analyzers, Code Completion, Editor Code Navigation, JavaScript Language Servers, Language Server Implementations, Custom Type Definitions.

Quelles sont les alternatives open-source à ternjs/tern ?

Les alternatives open-source à ternjs/tern incluent : luals/lua-language-server — lua-language-server is a static analysis tool and type checker for the Lua language that implements the Language… myriad-dreamin/tinymist — Tinymist is a comprehensive suite of tools for Typst document authoring, serving as a language server, document… rust-lang/rls — RLS is a language server that provides language intelligence for the Rust programming language. It implements the… rust-lang/rust-by-example — This project is an interactive programming education resource and tutorial designed for learning the Rust programming… codota/tabnine — TabNine is an AI-powered code completion engine that runs a deep-learning model to generate real-time code suggestions… amir9480/vscode-laravel-extra-intellisense — This is a Visual Studio Code extension that provides framework-specific IntelliSense for Laravel projects. It acts as…