@memoarchitect/tools 0.15.1 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +2 -2
- package/packages/tools/lib/commands/dev.d.ts.map +1 -1
- package/packages/tools/lib/commands/dev.js +4 -0
- package/packages/tools/lib/commands/dev.js.map +1 -1
- package/packages/tools/lib/commands/validate.d.ts.map +1 -1
- package/packages/tools/lib/commands/validate.js +2 -16
- package/packages/tools/lib/commands/validate.js.map +1 -1
- package/packages/tools/lib/model/complete-model.d.ts.map +1 -1
- package/packages/tools/lib/model/complete-model.js +59 -14
- package/packages/tools/lib/model/complete-model.js.map +1 -1
- package/packages/tools/lib/model/id-rebase.d.ts +6 -1
- package/packages/tools/lib/model/id-rebase.d.ts.map +1 -1
- package/packages/tools/lib/model/id-rebase.js +71 -36
- package/packages/tools/lib/model/id-rebase.js.map +1 -1
- package/packages/tools/lib/model/identity-registry.d.ts +26 -0
- package/packages/tools/lib/model/identity-registry.d.ts.map +1 -1
- package/packages/tools/lib/model/identity-registry.js +55 -4
- package/packages/tools/lib/model/identity-registry.js.map +1 -1
- package/packages/tools/lib/model/semantic.d.ts +72 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/short-id.d.ts +11 -0
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +33 -0
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/view-deriver.d.ts +8 -1
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +45 -0
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
- package/packages/tools/lib/operations/project-snapshot.js +3 -18
- package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +56 -3
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/server/axis-query.d.ts +9 -0
- package/packages/tools/lib/server/axis-query.d.ts.map +1 -0
- package/packages/tools/lib/server/axis-query.js +47 -0
- package/packages/tools/lib/server/axis-query.js.map +1 -0
- package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
- package/packages/tools/lib/server/dev-server.js +46 -9
- package/packages/tools/lib/server/dev-server.js.map +1 -1
- package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -1
- package/packages/tools/lib/server/mutation-domain.js +4 -0
- package/packages/tools/lib/server/mutation-domain.js.map +1 -1
- package/packages/tools/lib/server/user-preferences.d.ts.map +1 -1
- package/packages/tools/lib/server/user-preferences.js +11 -2
- package/packages/tools/lib/server/user-preferences.js.map +1 -1
- package/packages/tools/lib/server/view-writer.d.ts +25 -2
- package/packages/tools/lib/server/view-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/view-writer.js +231 -27
- package/packages/tools/lib/server/view-writer.js.map +1 -1
- package/packages/tools/lib/stage2/build-from-api.js +3 -1
- package/packages/tools/lib/stage2/build-from-api.js.map +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ─── One person's preferences for one model ─────────────────────────────────
|
|
2
2
|
//
|
|
3
3
|
// What a person chose for themselves in Architect while working on this model —
|
|
4
|
-
// the role whose viewpoints they want to see, how the explorer splits its folders, and the workspace (the system of systems, or one
|
|
4
|
+
// the role whose viewpoints they want to see, how the explorer splits its folders, the experimental features they switched on, and the workspace (the system of systems, or one
|
|
5
5
|
// system) they are working in. It is not model content
|
|
6
6
|
// and not something the team shares, so it lives in one visible file at the
|
|
7
7
|
// model root, `memo.user.yaml`, which the model's `.gitignore` keeps out of git
|
|
@@ -25,7 +25,7 @@ export function loadUserPreferences(projectRoot) {
|
|
|
25
25
|
if (!existsSync(path))
|
|
26
26
|
return {};
|
|
27
27
|
const parsed = parseYaml(readFileSync(path, 'utf8'));
|
|
28
|
-
return clean({ role: parsed?.role, workspace: parsed?.workspace, explorerSplit: parsed?.explorerSplit });
|
|
28
|
+
return clean({ role: parsed?.role, workspace: parsed?.workspace, explorerSplit: parsed?.explorerSplit, features: parsed?.features, packageFolders: parsed?.packageFolders });
|
|
29
29
|
}
|
|
30
30
|
/** Keep the string choices that are set, trimmed; drop the rest. */
|
|
31
31
|
function clean(raw) {
|
|
@@ -35,6 +35,15 @@ function clean(raw) {
|
|
|
35
35
|
if (typeof value === 'string' && value.trim())
|
|
36
36
|
out[key] = value.trim();
|
|
37
37
|
}
|
|
38
|
+
// Package folders are on unless the person turned them off, so only `false` is kept.
|
|
39
|
+
if (raw.packageFolders === false)
|
|
40
|
+
out.packageFolders = false;
|
|
41
|
+
// The feature ids switched on: a list of non-empty strings, each once, in the order given.
|
|
42
|
+
if (Array.isArray(raw.features)) {
|
|
43
|
+
const features = [...new Set(raw.features.filter((id) => typeof id === 'string' && id.trim() !== '').map(id => id.trim()))];
|
|
44
|
+
if (features.length > 0)
|
|
45
|
+
out.features = features;
|
|
46
|
+
}
|
|
38
47
|
return out;
|
|
39
48
|
}
|
|
40
49
|
/** Write the person's choices; an unset choice removes its key. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-preferences.js","sourceRoot":"","sources":["../../src/server/user-preferences.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,EAAE;AACF,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"user-preferences.js","sourceRoot":"","sources":["../../src/server/user-preferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DiagramDTO, MemoModelDTO } from '../types/index.js';
|
|
1
|
+
import type { DiagramDTO, MatrixDefinitionDTO, MemoModelDTO } from '../types/index.js';
|
|
2
2
|
import type { OutlineSource } from '../authoring/outline-source.js';
|
|
3
3
|
export interface ViewWriteResult {
|
|
4
4
|
success: boolean;
|
|
@@ -8,7 +8,16 @@ export interface ViewWriteResult {
|
|
|
8
8
|
identifier?: string;
|
|
9
9
|
/** True when the declaration seeded a new file. */
|
|
10
10
|
created?: boolean;
|
|
11
|
+
/** The new view's qualified name: its element id once the model recompiles. */
|
|
12
|
+
qualifiedName?: string;
|
|
11
13
|
}
|
|
14
|
+
/** The body statements a matrix definition declares, at one level of indentation. */
|
|
15
|
+
export declare function matrixLines(matrix: MatrixDefinitionDTO | undefined): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Replace the matrix statements of a view declaration, leaving everything else
|
|
18
|
+
* (identity, viewpoint binding, group) as it was.
|
|
19
|
+
*/
|
|
20
|
+
export declare function replaceMatrixStatements(declaration: string, matrix: MatrixDefinitionDTO | undefined, baseIndent?: string): string;
|
|
12
21
|
/**
|
|
13
22
|
* Write one view declaration into the project's own home for views of its kind.
|
|
14
23
|
*
|
|
@@ -26,9 +35,23 @@ export interface ViewWriteResult {
|
|
|
26
35
|
* would freeze the answer and quietly stop being true.
|
|
27
36
|
*/
|
|
28
37
|
export declare function selectionQueryLines(diagram: DiagramDTO): string[];
|
|
29
|
-
export declare function writeViewDeclaration(projectRoot: string, model: MemoModelDTO, diagram: DiagramDTO,
|
|
38
|
+
export declare function writeViewDeclaration(projectRoot: string, model: MemoModelDTO, diagram: Omit<DiagramDTO, 'id' | 'auto'> & {
|
|
39
|
+
id?: string;
|
|
40
|
+
},
|
|
30
41
|
/** Outlines of the project's files, from the selected compiler. */
|
|
31
42
|
outlines: OutlineSource): Promise<ViewWriteResult>;
|
|
43
|
+
/**
|
|
44
|
+
* Change a matrix view's name or definition, in its own declaration.
|
|
45
|
+
*
|
|
46
|
+
* The name is the `label` of its `@MemoIdentity`, so a rename leaves the
|
|
47
|
+
* element's identifier, and every reference to it, where it was. The axes and
|
|
48
|
+
* options are the statements `matrixLines` writes; everything else in the
|
|
49
|
+
* declaration is kept.
|
|
50
|
+
*/
|
|
51
|
+
export declare function updateViewDeclaration(projectRoot: string, model: MemoModelDTO, diagram: DiagramDTO, change: {
|
|
52
|
+
name?: string;
|
|
53
|
+
matrix?: MatrixDefinitionDTO;
|
|
54
|
+
}, outlines: OutlineSource): Promise<ViewWriteResult>;
|
|
32
55
|
/**
|
|
33
56
|
* Change WHAT a declared view shows, by editing its `expose` members.
|
|
34
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-writer.d.ts","sourceRoot":"","sources":["../../src/server/view-writer.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"view-writer.d.ts","sourceRoot":"","sources":["../../src/server/view-writer.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,UAAU,EAAiB,mBAAmB,EAAe,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8DD,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,MAAM,EAAE,CAiB7E;AA8CD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,SAAS,EAAE,UAAU,SAAK,GAAG,MAAM,CAqB7H;AA2DD;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAajE;AAED,wBAAsB,oBAAoB,CACtC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;AACpG,mEAAmE;AACnE,QAAQ,EAAE,aAAa,GACxB,OAAO,CAAC,eAAe,CAAC,CAsG1B;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACvC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAC7D,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAAE,EACvD,QAAQ,EAAE,aAAa,GACxB,OAAO,CAAC,eAAe,CAAC,CAiC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS;AAC/F,mEAAmE;AACnE,QAAQ,EAAE,aAAa,GACxB,OAAO,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAuCnD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAOtG;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACnC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9F,QAAQ,EAAE,aAAa,GACxB,OAAO,CAAC,eAAe,CAAC,CA8B1B"}
|
|
@@ -47,16 +47,155 @@ const viewDefinitionFor = (viewKind) => VIEW_DEFINITION_FOR_KIND[viewKind] ?? {
|
|
|
47
47
|
const slug = (value) => String(value).toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '') || 'view';
|
|
48
48
|
const escape = (value) => String(value).replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
49
49
|
/** A SysML identifier not already taken in this model. */
|
|
50
|
-
function freeIdentifier(base, model) {
|
|
50
|
+
function freeIdentifier(base, model, packageName) {
|
|
51
51
|
const cleaned = base.replace(/[^A-Za-z0-9_]/g, '') || 'view';
|
|
52
52
|
const start = /^[A-Za-z_]/.test(cleaned) ? cleaned : `view${cleaned}`;
|
|
53
|
-
|
|
53
|
+
// An element's id is its qualified name, so the name is free when neither
|
|
54
|
+
// the bare form nor the form inside the target package is taken.
|
|
55
|
+
const taken = (name) => Boolean(model.elements[name] || (packageName && model.elements[`${packageName}::${name}`]));
|
|
56
|
+
if (!taken(start))
|
|
54
57
|
return start;
|
|
55
58
|
let n = 2;
|
|
56
|
-
while (
|
|
59
|
+
while (taken(`${start}_${n}`))
|
|
57
60
|
n++;
|
|
58
61
|
return `${start}_${n}`;
|
|
59
62
|
}
|
|
63
|
+
// ─── Matrix declarations ─────────────────────────────────────────────────────
|
|
64
|
+
//
|
|
65
|
+
// A matrix is a `view` usage typed by MemoTraceabilityMatrixView or
|
|
66
|
+
// MemoDependencyMatrixView (SysML-textual-bnf.kebnf:1610 ViewUsage). Each axis
|
|
67
|
+
// is a redefinition of the part the definition declares —
|
|
68
|
+
// `part :>> rowAxis { attribute :>> query = "…"; }` (PartUsage :627,
|
|
69
|
+
// OwnedRedefinition :482, AttributeUsage :517) — the same shape a view's
|
|
70
|
+
// `selectionQuery` already takes, so the builder reads it with the code that
|
|
71
|
+
// reads that.
|
|
72
|
+
const MATRIX_PARTS = ['rowAxis', 'columnAxis', 'axis', 'criticalElements'];
|
|
73
|
+
const MATRIX_GROUP_TYPE = 'MemoMatrixGroup';
|
|
74
|
+
const MATRIX_ATTRIBUTES = ['system', 'linkTypes', 'dependencyTypes', 'containmentTypes', 'symmetric', 'ordering'];
|
|
75
|
+
const stringList = (values) => `(${values.map(value => `"${escape(value)}"`).join(', ')})`;
|
|
76
|
+
/** A string literal that survives a multi-line query: the newline is written as the escape SysML defines. */
|
|
77
|
+
const stringLiteral = (value) => `"${escape(value).replace(/\r?\n/g, '\\n')}"`;
|
|
78
|
+
function axisLines(name, axis) {
|
|
79
|
+
if (!axis || (!axis.query?.trim() && !(axis.elementIds?.length)))
|
|
80
|
+
return [];
|
|
81
|
+
return [
|
|
82
|
+
` part :>> ${name} {`,
|
|
83
|
+
...(axis.query?.trim() ? [` attribute :>> query = ${stringLiteral(axis.query.trim())};`] : []),
|
|
84
|
+
...(axis.elementIds?.length ? [` attribute :>> includeElementIds = ${stringList(axis.elementIds)};`] : []),
|
|
85
|
+
' }',
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
/** The body statements a matrix definition declares, at one level of indentation. */
|
|
89
|
+
export function matrixLines(matrix) {
|
|
90
|
+
if (!matrix)
|
|
91
|
+
return [];
|
|
92
|
+
const list = (name, values) => values?.length ? [` attribute :>> ${name} = ${stringList(values)};`] : [];
|
|
93
|
+
return [
|
|
94
|
+
...(matrix.system ? [` attribute :>> system = ${stringLiteral(matrix.system)};`] : []),
|
|
95
|
+
...axisLines('rowAxis', matrix.rowAxis),
|
|
96
|
+
...axisLines('columnAxis', matrix.columnAxis),
|
|
97
|
+
...axisLines('axis', matrix.axis),
|
|
98
|
+
...list('linkTypes', matrix.linkTypes),
|
|
99
|
+
...list('dependencyTypes', matrix.dependencyTypes),
|
|
100
|
+
...list('containmentTypes', matrix.containmentTypes),
|
|
101
|
+
...(matrix.symmetric === undefined ? [] : [` attribute :>> symmetric = ${matrix.symmetric};`]),
|
|
102
|
+
...(matrix.ordering ? [` attribute :>> ordering = MatrixOrderingKind::${matrix.ordering};`] : []),
|
|
103
|
+
...axisLines('criticalElements', matrix.criticalElements),
|
|
104
|
+
...groupLines(matrix.groups),
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Each named group is a typed part of the view that subsets the `groups` the
|
|
109
|
+
* definition declares (PartUsage, SysML-textual-bnf.kebnf:627), so several can
|
|
110
|
+
* coexist where a redefinition could be stated once.
|
|
111
|
+
*/
|
|
112
|
+
function groupLines(groups) {
|
|
113
|
+
return (groups ?? []).flatMap((group, index) => [
|
|
114
|
+
` part group${index + 1} : ${MATRIX_GROUP_TYPE} :> groups {`,
|
|
115
|
+
` attribute :>> groupName = ${stringLiteral(group.name)};`,
|
|
116
|
+
` attribute :>> groupedBy = MatrixGroupKind::${group.groupedBy};`,
|
|
117
|
+
...(group.expression?.trim() ? [` attribute :>> expression = ${stringLiteral(group.expression.trim())};`] : []),
|
|
118
|
+
' }',
|
|
119
|
+
]);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The top-level items of a declaration's body, as [start, end) offsets into the
|
|
123
|
+
* body text. Strings and comments are skipped, so a `}` inside a query does not
|
|
124
|
+
* close a block.
|
|
125
|
+
*/
|
|
126
|
+
function bodyItems(body) {
|
|
127
|
+
const items = [];
|
|
128
|
+
let depth = 0;
|
|
129
|
+
let start = -1;
|
|
130
|
+
for (let i = 0; i < body.length; i++) {
|
|
131
|
+
const c = body[i];
|
|
132
|
+
if (c === '"' || c === "'") {
|
|
133
|
+
const quote = c;
|
|
134
|
+
for (i++; i < body.length && body[i] !== quote; i++)
|
|
135
|
+
if (body[i] === '\\')
|
|
136
|
+
i++;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (c === '/' && body[i + 1] === '/') {
|
|
140
|
+
while (i < body.length && body[i] !== '\n')
|
|
141
|
+
i++;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (c === '/' && body[i + 1] === '*') {
|
|
145
|
+
i = body.indexOf('*/', i + 2);
|
|
146
|
+
if (i < 0)
|
|
147
|
+
break;
|
|
148
|
+
i++;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (/\s/.test(c) && depth === 0 && start < 0)
|
|
152
|
+
continue;
|
|
153
|
+
if (start < 0)
|
|
154
|
+
start = i;
|
|
155
|
+
if (c === '{')
|
|
156
|
+
depth++;
|
|
157
|
+
else if (c === '}') {
|
|
158
|
+
depth--;
|
|
159
|
+
if (depth === 0) {
|
|
160
|
+
items.push([start, i + 1]);
|
|
161
|
+
start = -1;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else if (c === ';' && depth === 0) {
|
|
165
|
+
items.push([start, i + 1]);
|
|
166
|
+
start = -1;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return items;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Replace the matrix statements of a view declaration, leaving everything else
|
|
173
|
+
* (identity, viewpoint binding, group) as it was.
|
|
174
|
+
*/
|
|
175
|
+
export function replaceMatrixStatements(declaration, matrix, baseIndent = '') {
|
|
176
|
+
const open = declaration.indexOf('{');
|
|
177
|
+
const close = declaration.lastIndexOf('}');
|
|
178
|
+
if (open < 0 || close < open)
|
|
179
|
+
return declaration;
|
|
180
|
+
const body = declaration.slice(open + 1, close);
|
|
181
|
+
const owned = new RegExp(`^(part\\s+\\w+\\s*:\\s*${MATRIX_GROUP_TYPE}\\b|part\\s*:>>\\s*(${MATRIX_PARTS.join('|')})\\b|attribute\\s*:>>\\s*(${MATRIX_ATTRIBUTES.join('|')})\\b)`);
|
|
182
|
+
let kept = '';
|
|
183
|
+
let cursor = 0;
|
|
184
|
+
for (const [from, to] of bodyItems(body)) {
|
|
185
|
+
if (owned.test(body.slice(from, to))) {
|
|
186
|
+
kept += body.slice(cursor, from).replace(/[ \t]*$/, '');
|
|
187
|
+
cursor = to;
|
|
188
|
+
// swallow the rest of the line the removed item ended on
|
|
189
|
+
const eol = body.indexOf('\n', cursor);
|
|
190
|
+
if (eol >= 0 && body.slice(cursor, eol).trim() === '')
|
|
191
|
+
cursor = eol + 1;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
kept += body.slice(cursor);
|
|
195
|
+
const added = matrixLines(matrix).map(line => `${baseIndent}${line}`);
|
|
196
|
+
const trimmed = kept.replace(/\s+$/, '');
|
|
197
|
+
return `${declaration.slice(0, open + 1)}${trimmed}${added.length ? `\n${added.join('\n')}` : ''}\n${baseIndent}${declaration.slice(close)}`;
|
|
198
|
+
}
|
|
60
199
|
/**
|
|
61
200
|
* The views this project already declares for a kind.
|
|
62
201
|
*
|
|
@@ -150,13 +289,23 @@ export function selectionQueryLines(diagram) {
|
|
|
150
289
|
export async function writeViewDeclaration(projectRoot, model, diagram,
|
|
151
290
|
/** Outlines of the project's files, from the selected compiler. */
|
|
152
291
|
outlines) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
292
|
+
// A matrix names its package: the person chose a folder in the tree, and the
|
|
293
|
+
// declaration goes into a file that declares it. Every other view learns its
|
|
294
|
+
// home from the views the project already has.
|
|
295
|
+
const chosen = diagram.package ? model.packages?.find(pkg => pkg.qualifiedName === diagram.package) : undefined;
|
|
296
|
+
if (diagram.package && !chosen) {
|
|
297
|
+
return { success: false, reason: `the package ${diagram.package} is not declared in this project` };
|
|
298
|
+
}
|
|
299
|
+
// A matrix with no package joins the project's commonest home for views of ANY kind: there is rarely a
|
|
300
|
+
// sibling matrix, and a package invented for the first one would be a new place to look.
|
|
301
|
+
const isMatrixView = Boolean(diagram.viewDefinition && diagram.matrix);
|
|
302
|
+
const home = chosen ? undefined : conventionalHome(siblingViews(model, isMatrixView ? null : diagram.viewKind ?? null));
|
|
303
|
+
const bootstrap = chosen || home ? undefined : bootstrapHome(projectRoot, model, diagram);
|
|
304
|
+
if (!chosen && !home && !bootstrap) {
|
|
156
305
|
return { success: false, reason: 'this project declares no view at all, so there is no convention to place one by' };
|
|
157
306
|
}
|
|
158
|
-
const exemplar = home ? home.members[0] : bootstrap.exemplar;
|
|
159
|
-
const targetFile = home ? home.file : bootstrap.file;
|
|
307
|
+
const exemplar = chosen ? undefined : home ? home.members[0] : bootstrap.exemplar;
|
|
308
|
+
const targetFile = chosen ? chosen.file : home ? home.file : bootstrap.file;
|
|
160
309
|
const absolute = resolve(projectRoot, targetFile);
|
|
161
310
|
if (bootstrap && !existsSync(absolute)) {
|
|
162
311
|
mkdirSync(dirname(absolute), { recursive: true });
|
|
@@ -183,27 +332,30 @@ outlines) {
|
|
|
183
332
|
return { success: false, reason: `${targetFile} cannot be edited: ${e instanceof Error ? e.message : String(e)}` };
|
|
184
333
|
}
|
|
185
334
|
const packages = locatePackages(outline);
|
|
186
|
-
const wanted = bootstrap ? bootstrap.pkg : exemplar.package;
|
|
187
|
-
const target = packages.find(pkg => pkg.qualifiedName === wanted) ?? packages[0];
|
|
335
|
+
const wanted = chosen ? chosen.qualifiedName : bootstrap ? bootstrap.pkg : exemplar.package;
|
|
336
|
+
const target = packages.find(pkg => pkg.qualifiedName === wanted) ?? (chosen ? undefined : packages[0]);
|
|
188
337
|
if (!target)
|
|
189
338
|
return { success: false, reason: `${targetFile} declares no package to hold the view` };
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
339
|
+
// A matrix selects by its axes and exposes nothing (ViewBodyItem makes
|
|
340
|
+
// Expose optional, SysML-textual-bnf.kebnf:1618-1622). Every other view
|
|
341
|
+
// exposes the package of the element it shows.
|
|
342
|
+
const isMatrix = Boolean(diagram.viewDefinition && diagram.matrix);
|
|
193
343
|
const primary = model.elements[(diagram.elementIds ?? [])[0] ?? ''];
|
|
194
|
-
const exposePackage = primary?.package
|
|
195
|
-
?? exemplar
|
|
196
|
-
if (!exposePackage) {
|
|
344
|
+
const exposePackage = isMatrix ? undefined : primary?.package
|
|
345
|
+
?? exemplar?.attributes?.expose?.split(',')[0]?.replace(/::\*$/, '');
|
|
346
|
+
if (!isMatrix && !exposePackage) {
|
|
197
347
|
return { success: false, reason: 'the view has no element whose package it could expose' };
|
|
198
348
|
}
|
|
199
349
|
// A sibling's definition is authoritative; without one, derive it from the
|
|
200
|
-
// kind so the declaration still states what it is.
|
|
350
|
+
// kind so the declaration still states what it is. A matrix names its own.
|
|
201
351
|
const derived = viewDefinitionFor(diagram.viewKind ?? '');
|
|
202
|
-
const viewDef =
|
|
203
|
-
|
|
352
|
+
const viewDef = diagram.viewDefinition
|
|
353
|
+
?? (home && exemplar ? (exemplar.attributes?.usageType || derived.def) : derived.def);
|
|
354
|
+
const viewpoint = diagram.viewpointId && diagram.viewpointId !== '__model' && diagram.viewpointId !== '__unassigned'
|
|
204
355
|
? diagram.viewpointId
|
|
205
|
-
: exemplar
|
|
206
|
-
|
|
356
|
+
: (isMatrix ? undefined : exemplar?.attributes?.viewpointDefinition);
|
|
357
|
+
// A matrix is not another kind of view's sibling: it takes neither its viewpoint nor its group.
|
|
358
|
+
const group = isMatrix ? undefined : exemplar?.attributes?.group;
|
|
207
359
|
// A screen layout is named for the screen it depicts — the existing
|
|
208
360
|
// convention, and it reads well because there is one per screen. Any other
|
|
209
361
|
// kind is named for the view; calling a sequence view `…ScreenLayout` would
|
|
@@ -212,16 +364,22 @@ outlines) {
|
|
|
212
364
|
const preferred = derived.def === 'MemoScreenLayoutView' && primary
|
|
213
365
|
? `${primary.id}Layout`
|
|
214
366
|
: camel.charAt(0).toLowerCase() + camel.slice(1);
|
|
215
|
-
const identifier = freeIdentifier(preferred, model);
|
|
367
|
+
const identifier = freeIdentifier(preferred, model, target.qualifiedName);
|
|
216
368
|
// Emitted at column 0: `insertIntoBody` indents the block one level into the
|
|
217
|
-
// package body it is placed in.
|
|
369
|
+
// package body it is placed in. An id is written only when the caller has
|
|
370
|
+
// one: Architect generates none, and the compiler assigns the element's.
|
|
371
|
+
const identity = [
|
|
372
|
+
...(diagram.id ? [`:>> providedId = "${escape(diagram.id)}";`] : []),
|
|
373
|
+
`:>> label = "${escape(diagram.name)}";`,
|
|
374
|
+
].join(' ');
|
|
218
375
|
const body = [
|
|
219
376
|
`view ${identifier} : ${viewDef} {`,
|
|
220
|
-
` expose ${exposePackage}
|
|
221
|
-
` @MemoIdentity {
|
|
222
|
-
...(!home && derived.declaresKind ? [` attribute :>> viewKind = DiagramViewKind::${diagram.viewKind};`] : []),
|
|
377
|
+
...(exposePackage ? [` expose ${exposePackage}::*;`] : []),
|
|
378
|
+
` @MemoIdentity { ${identity} }`,
|
|
379
|
+
...(!home && !isMatrix && derived.declaresKind ? [` attribute :>> viewKind = DiagramViewKind::${diagram.viewKind};`] : []),
|
|
223
380
|
...(group ? [` attribute group = "${escape(group)}";`] : []),
|
|
224
381
|
...selectionQueryLines(diagram),
|
|
382
|
+
...matrixLines(diagram.matrix),
|
|
225
383
|
...(viewpoint ? [` ref :>> viewpointDefinition = ${viewpoint};`] : []),
|
|
226
384
|
'}',
|
|
227
385
|
].join('\n');
|
|
@@ -229,7 +387,53 @@ outlines) {
|
|
|
229
387
|
const committed = await commitSource(absolute, targetFile, updated, outlines);
|
|
230
388
|
if (!committed.success)
|
|
231
389
|
return { success: false, reason: committed.error };
|
|
232
|
-
return { success: true, filePath: targetFile, identifier, created: !!bootstrap };
|
|
390
|
+
return { success: true, filePath: targetFile, identifier, created: !!bootstrap, qualifiedName: `${target.qualifiedName}::${identifier}` };
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Change a matrix view's name or definition, in its own declaration.
|
|
394
|
+
*
|
|
395
|
+
* The name is the `label` of its `@MemoIdentity`, so a rename leaves the
|
|
396
|
+
* element's identifier, and every reference to it, where it was. The axes and
|
|
397
|
+
* options are the statements `matrixLines` writes; everything else in the
|
|
398
|
+
* declaration is kept.
|
|
399
|
+
*/
|
|
400
|
+
export async function updateViewDeclaration(projectRoot, model, diagram, change, outlines) {
|
|
401
|
+
const view = model.elements[diagram?.elementId ?? ''];
|
|
402
|
+
if (!view?.file)
|
|
403
|
+
return { success: false, reason: 'the view has no source file to edit' };
|
|
404
|
+
const absolute = resolve(projectRoot, view.file);
|
|
405
|
+
if (!existsSync(absolute))
|
|
406
|
+
return { success: false, reason: `${view.file} does not exist` };
|
|
407
|
+
const source = readFileSync(absolute, 'utf8');
|
|
408
|
+
const file = (isAbsolute(view.file) ? relative(projectRoot, view.file) : view.file).replaceAll('\\', '/');
|
|
409
|
+
let outline;
|
|
410
|
+
try {
|
|
411
|
+
outline = await outlines.outline(file, source);
|
|
412
|
+
}
|
|
413
|
+
catch (e) {
|
|
414
|
+
return { success: false, reason: `${view.file} cannot be edited: ${e instanceof Error ? e.message : String(e)}` };
|
|
415
|
+
}
|
|
416
|
+
const node = [...outlineNodes(outline)].find(candidate => candidate.key === view.id);
|
|
417
|
+
if (!node)
|
|
418
|
+
return { success: false, reason: `${view.id} was not found in ${view.file}` };
|
|
419
|
+
let declaration = source.slice(node.start, node.end);
|
|
420
|
+
if (change.matrix) {
|
|
421
|
+
// The declaration is spliced from its first character, so the indentation
|
|
422
|
+
// of the line it sits on is what the new statements must be offset by.
|
|
423
|
+
const baseIndent = /^[ \t]*/.exec(source.slice(source.lastIndexOf('\n', node.start - 1) + 1, node.start))[0];
|
|
424
|
+
declaration = replaceMatrixStatements(declaration, change.matrix, baseIndent);
|
|
425
|
+
}
|
|
426
|
+
if (change.name !== undefined) {
|
|
427
|
+
const label = `:>> label = "${escape(change.name)}";`;
|
|
428
|
+
declaration = /:>>\s*label\s*=\s*"(?:[^"\\]|\\.)*"\s*;/.test(declaration)
|
|
429
|
+
? declaration.replace(/:>>\s*label\s*=\s*"(?:[^"\\]|\\.)*"\s*;/, () => label)
|
|
430
|
+
: declaration.replace(/@MemoIdentity\s*\{/, () => `@MemoIdentity { ${label}`);
|
|
431
|
+
}
|
|
432
|
+
const updated = source.slice(0, node.start) + declaration + source.slice(node.end);
|
|
433
|
+
const committed = await commitSource(absolute, view.file, updated, outlines);
|
|
434
|
+
if (!committed.success)
|
|
435
|
+
return { success: false, reason: committed.error };
|
|
436
|
+
return { success: true, filePath: view.file };
|
|
233
437
|
}
|
|
234
438
|
/**
|
|
235
439
|
* Change WHAT a declared view shows, by editing its `expose` members.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-writer.js","sourceRoot":"","sources":["../../src/server/view-writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"view-writer.js","sourceRoot":"","sources":["../../src/server/view-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -317,7 +317,9 @@ class ElementBuilder {
|
|
|
317
317
|
this.define(element, usage);
|
|
318
318
|
if (construct === 'port')
|
|
319
319
|
this.ports(usage, packageName, id);
|
|
320
|
-
|
|
320
|
+
// A view contains the typed parts it declares too: a matrix's named groups are `part g : MemoMatrixGroup`
|
|
321
|
+
// members of the view (ViewBodyItem takes any DefinitionBodyItem, SysML-textual-bnf.kebnf:1618-1622).
|
|
322
|
+
if (construct === 'part' || construct === 'item' || construct === 'view')
|
|
321
323
|
this.nestedParts(usage, packageName, id);
|
|
322
324
|
if (construct === 'part')
|
|
323
325
|
this.ports(usage, packageName, id);
|