Skip to content

Latest commit

 

History

History
234 lines (161 loc) · 14.1 KB

GLOSSARY.md

File metadata and controls

234 lines (161 loc) · 14.1 KB

mops

mops helps users and agents inspect and work with JetBrains MPS projects from a CLI. This glossary keeps MPS project vocabulary precise when discussing navigation, lookup, and model operations.

Language

MPS Project: The JetBrains MPS project the user is working in. An MPS Project owns zero or more Project Modules. Avoid: current project when precision matters Related: MPS Repository, source repository, checkout

Project Name: The canonical name of an MPS Project. Related: project directory name

MPS Module: A top-level MPS unit visible to an MPS project session, such as a language, solution, or generator. Avoid: module when the owning scope is unclear

Module Name: The canonical name of an MPS Module. Related: Module Reference

Project Module: An MPS Module that belongs to an MPS Project, including its generators when they are part of that project. Dependency and platform modules available alongside the project are not Project Modules. Related: dependency module, platform module

Module Creation Operation: A project-level operation that creates a language, solution, devkit, or generator as a Project Module. Avoid: generic create-module operation Related: Project Module, Code Mode Extension, Module Creation Report

Model Creation Operation: An operation that creates an MPS Model in a selected Project Module. Related: MPS Model, Project Module, Code Mode Extension

Module Creation Report: The structured CLI result of a Module Creation Operation, identifying the primary module and every companion artifact created with it. Related: Module Creation Operation, Project Module

Solution Usage Preset: A named configuration of a solution's generation-target facets according to its intended use. Avoid: solution kind, raw facet options Related: Module Creation Operation, Project Module

Embedded Generator: A generator whose descriptor is contained in its source language's descriptor. It is tied to that language. Avoid: Language-owned Generator Related: Standalone Generator, Project Module

Standalone Generator: A generator with its own descriptor that remains tied to a source language. "Standalone" describes descriptor persistence, not the absence of a language relationship. Related: Embedded Generator, Project Module

MPS Repository: The complete MPS repository visible to an MPS project session, including Project Modules and dependency or platform modules. Related: Git repository, source repository

Project and Libraries: The MPS Project together with the library modules visible to that project. Related: MPS Repository

Path Macro: A named directory that an MPS Project's files refer to as ${NAME} at the start of a path, such as the path of a project library. Its value comes from outside the project. A path relative to the project ($PROJECT_DIR$) does not use a Path Macro. Avoid: path variable, macro without qualification Related: MPS Project, Project and Libraries

Editable Project Sources: The editable MPS Models in an MPS Project that users and agents may modify. Non-editable stub models and packaged library models are not Editable Project Sources. Related: Project and Libraries

MPS Model: A named model contained in an MPS Module. An MPS Model owns zero or more Root Nodes. Related: model file

MPS Concept: A language concept that classifies an MPS Node. Related: Subconcept

Subconcept: An MPS Concept that directly or transitively specializes another MPS Concept. Related: MPS Concept

Concept Instance: An MPS Node classified by an MPS Concept. When an MPS Concept is considered through its specialization hierarchy, instances of its Subconcepts are also Concept Instances of that concept. Related: MPS Concept, Subconcept

Model Name: The full name of an MPS Model, including its stereotype when present. Related: long name, model path

Model Reference: A globally usable reference to an MPS Model. Related: model id, model path

Root Node: An MPS Node owned directly by an MPS Model rather than by another node. Avoid: root element, top-level node

MPS Node: A model element in an MPS Model. An MPS Node may have links to other MPS Nodes and zero or more Children. Avoid: AST node when precision matters

Build Project: An MPS build-language root that describes which MPS modules participate in a build and records extracted information about those modules. Related: MPS Node

Node Name: The name value of a named MPS Node. A Node Name is distinct from a Node Presentation. Related: Node Presentation

Node Presentation: The user-facing presentation of an MPS Node, which may differ from its Node Name. Related: Node Name

MPS Link: A named relationship from one MPS Node to another MPS Node. An MPS Link is either a Containment Link or a Reference Link. Avoid: edge, pointer

Role: The name of an MPS Link. Related: property

Child: An MPS Node owned by another MPS Node through a Containment Link. Related: reference target, property

Containment Link: An MPS Link that owns another MPS Node as a Child. Also called a child link or aggregation link. Related: Reference Link

Reference Link: An MPS Link that allows a source MPS Node to point to a target MPS Node without owning it. Related: Containment Link

Reference: A non-owning relationship instance from a source MPS Node to a target MPS Node through a Reference Link. A Reference records the identity of the target node. Related: Reference Link

Node Usage: A Reference whose target is the MPS Node being searched for. A Node Usage has an owning source MPS Node, a Role identifying the Reference Link, and the searched target MPS Node. Avoid: node reference when describing usage Related: Node Reference, Reference

Node ID: An identifier for an MPS Node that is unique only within its MPS Model. Its decimal and encoded spellings identify the same node. Related: Node Reference

Node Reference: A globally usable reference to an MPS Node that combines a Model Reference with a Node ID. Related: Node ID, path

Module Reference: A globally usable reference to an MPS Module. Related: module id

Concept Name: A name for an MPS Concept, expressed as its qualified name, persisted name, or bare short name. Related: MPS Concept, Navigation Target

Navigation Target: A user-supplied path of names or serialized references identifying the MPS Repository, an MPS Module, an MPS Model, a Root Node, or an MPS Node. Avoid: path, target when precision matters Related: Node Reference, Model Reference, Module Reference, Search Scope

Search Scope: The portion of the MPS Repository considered by a Repository Search. It may consist of Editable Project Sources or the contents of an explicit Navigation Target. Avoid: search space, context Related: Editable Project Sources, Navigation Target

Repository Lookup: Resolution of a supplied name, reference, or Navigation Target to zero or one object. An ambiguous identity has no unique lookup result. Related: Repository Search, Concept Name, Node Reference, Model Reference, Module Reference

Repository Search: Discovery of zero or more objects satisfying criteria within a Search Scope. Criteria may describe names, concept instances, or usages; name matching may be exact, pattern-based, or fuzzy. Related: Repository Lookup, Search Scope, Concept Instance, Node Usage

Test Execution

Test Selection: The root test case, MPS Model, MPS Module, or MPS Project chosen for test execution. Related: Navigation Target, Test Run

Test Run: An execution of the tests identified by a Test Selection, including results for completed tests when execution is interrupted. Related: Test Selection, Test Run Report

Test Run Report: The recorded outcome of a Test Run, containing individual test results, failure details, and source identities. A report for an interrupted run retains completed results and identifies the run as incomplete. Related: Test Run, Node Reference

Model Editing

Java Snippet Parsing: Conversion of Java source text into MPS Nodes at a supplied destination, including reference and structural ambiguity resolution. Related: MPS Node, Code Mode, Reference, Java Parsing Result

Java Parsing Result: The outcome of Java Snippet Parsing, consisting of the inserted nodes and any unresolved references or ambiguous constructs within them. Related: Java Snippet Parsing, MPS Node, Reference

Edit Operation: A single modification to an MPS Node in Editable Project Sources: a primitive change (setting a property, setting a Reference, adding, deleting, moving, or copying a node) or an Intent Operation. Avoid: mutation, change Related: Editable Project Sources, Node Subtree, Constraint, Intent Operation

Intent Operation: An Edit Operation that expresses a rearrangement: replacing a node, wrapping it, or unwrapping a survivor from it. Avoid: macro, compound edit Related: Edit Operation, Move Leaf, Inline Subtree

Inline Subtree: A node-tree specification for new structure in an Edit Operation. Each position holds a fresh-node specification, a Move Leaf, or a Copy Leaf. Avoid: nested children, template Related: Edit Operation, Move Leaf, Copy Leaf

Move Leaf: A leaf in an Inline Subtree representing adoption of an existing MPS Node and its Node Subtree into new structure. The adopted node retains its identity. Related: Inline Subtree, Copy Leaf, Node Subtree

Copy Leaf: A leaf in an Inline Subtree representing a copy of an existing MPS Node's Node Subtree with fresh identities and internal References directed to the copied nodes. Related: Inline Subtree, Move Leaf

Node Subtree: An MPS Node together with all nodes reachable from it through Containment Links. Copying a node "with descendants" copies its Node Subtree. Avoid: node tree, branch Related: Containment Link, Child

Node Stub: A placeholder for an MPS Node below the requested depth of a bounded export: its Role, MPS Concept, name, Node Reference, and child count, without properties, references, or children. Avoid: truncated node, leaf Related: Node Subtree, Node Reference

Code Mode: An environment in which users and agents compose operations against an open MPS Project using native MPS objects and Code Mode Extensions within one program. Avoid: Edit Script, eval mode Related: MPS Project, Access Block, Edit Operation, Code Mode Extension

Access Block: An independent, non-nesting section of a Code Mode program with read access or command access to an MPS Project. Avoid: transaction when the block is read-only Related: Code Mode, MPS Project, Edit Operation

Code Mode Reference: The discoverable documentation of Code Mode Extensions available to an MPS Project, together with the native MPS members usable alongside them. Avoid: command help, service registry Related: Code Mode, Code Mode Extension, Code Mode Namespace, MPS Project

Code Mode Namespace: The hierarchy that groups project-wide Code Mode Extensions and concept-specific operations by purpose. Avoid: services, service registry, utility namespace Related: Code Mode, Code Mode Extension, MPS Project

Code Mode Extension: A mops-supported convenience on a native MPS object or in the Code Mode Namespace. Its contract belongs to mops rather than to the selected MPS version. Avoid: handle, wrapper Related: Code Mode, Code Mode Extension Bundle, Code Mode Namespace, MPS Node, MPS Model, MPS Module

Code Mode Extension Bundle: A built-in or plugin contribution that groups Code Mode Extensions with their Code Mode Reference documentation under a bundle identity and version. Avoid: service provider Related: Code Mode, Code Mode Extension, Code Mode Reference

Materialize: An Edit Operation materializes an MPS Node when it brings the node into its model fresh or as a copy. A Move Leaf does not materialize the node it adopts — that node already existed and keeps its identity. Related: Edit Operation, Copy Leaf, Move Leaf, Edit Plugin

Edit Plugin: Language-aware behavior that adjusts model state when an Edit Operation materializes a Concept Instance of a declared concept. Its automatic adjustments are disclosed through Hints. Avoid: plugin without qualification (MPS languages have a plugin aspect), hook Related: Materialize, Hint, Concept Instance

Hint: A free-text disclosure in an edit response describing something done automatically on the user's behalf, such as an Edit Plugin's adjustment. A Hint reports work done, not a problem — it is distinct from a warning. Avoid: warning, notice Related: Edit Plugin

Constraint: A language-defined rule that restricts whether an edit is well-formed, such as which MPS Concepts may fill an MPS Link, a link's cardinality, or whether a node may be a Child of another node. Avoid: rule, validation Related: Constraint Violation, Model Check

Constraint Violation: A Constraint that a proposed Edit Operation would break. Related: Constraint

Model Check: The full validation of MPS Models and their owning MPS Modules, including typesystem, model, module, and checking rules. Avoid: validation, type check Related: Constraint, MPS Model, Project Module

CLI Help

Command Help: Usage text for a mops CLI command, describing its options, arguments, and subcommands. Related: Explain Topic

Notation: A textual format that mops exchanges with users and agents, such as an edit batch or a serialized Node Reference. Avoid: format, syntax when precision matters Related: Explain Topic

Explain Topic: A named, self-contained reference page about a Notation or part of one. Avoid: help topic, doc page Related: Notation, Command Help