reqlanOverviewIdeasFilesCode filesClustersAttributesGraphPrint
Ideas/no_name_idea_safe_warning

Idea detail

no_name_idea_safe_warning

reqlan rq/language/syntax.rq:303

block done

Summary

A top-level nameless curly-brace block — `{... }` with no idea name — must not take down the parser or the language server workspace.
Parse the block as a recoverable anonymous top-level element, emit a descriptive warning that a name is required before `{`, and continue so later ideas, imports, and links still work.
Nameless blocks inside parenthesized lists remain valid list items per lists; only top-level nameless blocks warn.
Related recovery posture: import_error_recovery. Block shape: block_idea. Fenced examples must stay opaque per code_snippets so braces inside snippets cannot desync structural depth.
Non-termination ( lex / parse never finishes ) is a different failure mode: parse_budget_timeout.

Jump to outbound references

Jump to inbound references

Navigation

Source file

reqlan rq/language/syntax.rq

community 39

community cluster

syntax.rq

file cluster

reqlan rq/language

folder cluster

status: done

status cluster

tag: Not present

tag cluster

Printable page

Static print-friendly idea sheet.

Attributes

KeyValue
status done
tests parsing.test.ts:parses top-level nameless braces without aborting later ideas, parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure, validating.test.ts:warns on top-level nameless braces without invalidating later ideas
implementation reqlan.langium, reqlan-token-builder.ts, reqlan-validator.ts, reqlan-workspace-manager.ts

Browse all attributes

Ancestor context

lists

Parenthesized lists contain newline-separated items. Each list item is either a one-liner or a nameless block idea in curly braces. Lists may appear as attribute values and inside block bodies. Named lists use a label followed by a parenthesized item list; the opening parenthesis must be followed by a newline before the first item. Nested lists may appear inside block values or as list items; the opening parenthesis must be followed by a newline before the first item. Inline parentheses in body prose — for example continuous ( " live " ) physics or ( pixelRatio 1, no WebGL ) — are plain text, not lists.

block_idea

A block idea is written as a name followed by curly braces containing a body and optional attributes. The first unstructured text in an idea body is the main description when no other body attribute is marked.

code_snippets

Idea bodies and block attribute values may embed fenced code blocks delimited by triple backticks. An opening fence is three backticks on a line, optionally followed by a language tag such as python or rq. A closing fence is three backticks on a line. Everything between the fences is literal opaque text — it is not parsed as reqlan syntax. Keywords, imports, attributes, braces, and quotes inside a fence are inert for the parser and may be shown as examples without parse errors. Fenced blocks may span multiple lines and preserve their inner content verbatim. Brace-depth tracking must skip fence interiors so example braces cannot desync surrounding structure ( [no_name_idea_safe_warning] ).

Outbound references

KindIdeaPathSnippet
file_reference ../../packages/language/src/reqlan-token-builder.ts packages/language/src/reqlan-token-builder.ts reqlan-token-builder.ts
file_reference ../../packages/language/src/reqlan-validator.ts packages/language/src/reqlan-validator.ts reqlan-validator.ts
file_reference ../../packages/language/src/reqlan-workspace-manager.ts packages/language/src/reqlan-workspace-manager.ts reqlan-workspace-manager.ts
file_reference ../../packages/language/src/reqlan.langium packages/language/src/reqlan.langium reqlan.langium
file_reference ../../packages/language/test/parsing.test.ts:parses top-level nameless braces without aborting later ideas packages/language/test/parsing.test.ts:parses top-level nameless braces without aborting later ideas parsing.test.ts:parses top-level nameless braces without aborting later ideas
file_reference ../../packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure
file_reference ../../packages/language/test/validating.test.ts:warns on top-level nameless braces without invalidating later ideas packages/language/test/validating.test.ts:warns on top-level nameless braces without invalidating later ideas validating.test.ts:warns on top-level nameless braces without invalidating later ideas
references block_idea reqlan rq/language/syntax.rq block_idea
references code_snippets reqlan rq/language/syntax.rq code_snippets
references lists reqlan rq/language/syntax.rq lists

Inbound references

KindIdeaPathSnippet
references code_snippets reqlan rq/language/syntax.rq no_name_idea_safe_warning

Unresolved references

KindIdeaPathSnippet
references import_error_recovery import_error_recovery
references parse_budget_timeout parse_budget_timeout

Local graph

Initialising graph…