@tooee/marks 0.7.3 → 0.8.0
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mark-set-builder.d.ts +2 -2
- package/dist/mark-set-builder.d.ts.map +1 -1
- package/dist/mark-set-builder.js.map +1 -1
- package/dist/mark-set.d.ts +11 -9
- package/dist/mark-set.d.ts.map +1 -1
- package/dist/mark-set.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/mark-set-builder.ts +2 -2
- package/src/mark-set.ts +10 -15
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { MarkPosition, MarkRange, MarkStyle, Mark, MarkPriority } from "./types.js";
|
|
2
2
|
export { MarkPriorities } from "./types.js";
|
|
3
3
|
export { MarkSet } from "./mark-set.js";
|
|
4
|
+
export type { RowDecoration } from "./mark-set.js";
|
|
4
5
|
export { MarkSetBuilder } from "./mark-set-builder.js";
|
|
5
6
|
export type { MarkState } from "./mark-state.js";
|
|
6
7
|
export { createMarkState, updateMarkState } from "./mark-state.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -2,8 +2,8 @@ import type { Mark, MarkPosition, MarkStyle } from "./types.js";
|
|
|
2
2
|
import { MarkSet } from "./mark-set.js";
|
|
3
3
|
export declare class MarkSetBuilder {
|
|
4
4
|
#private;
|
|
5
|
-
addLine(line: number, style: MarkStyle, data?:
|
|
6
|
-
addRange(from: MarkPosition, to: MarkPosition, style: MarkStyle, data?:
|
|
5
|
+
addLine(line: number, style: MarkStyle, data?: Mark["data"]): this;
|
|
6
|
+
addRange(from: MarkPosition, to: MarkPosition, style: MarkStyle, data?: Mark["data"]): this;
|
|
7
7
|
addMark(mark: Mark): this;
|
|
8
8
|
build(namespace: string, priority: number): MarkSet;
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-set-builder.d.ts","sourceRoot":"","sources":["../src/mark-set-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,qBAAa,cAAc;;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"mark-set-builder.d.ts","sourceRoot":"","sources":["../src/mark-set-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,qBAAa,cAAc;;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAOjE;IAED,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAO1F;IAED,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGxB;IAED,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-set-builder.js","sourceRoot":"","sources":["../src/mark-set-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,cAAc;IAChB,MAAM,GAAW,EAAE,CAAC;IAE7B,OAAO,CAAC,IAAY,EAAE,KAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"mark-set-builder.js","sourceRoot":"","sources":["../src/mark-set-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,cAAc;IAChB,MAAM,GAAW,EAAE,CAAC;IAE7B,OAAO,CAAC,IAAY,EAAE,KAAgB,EAAE,IAAmB;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,IAAI;YACJ,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;YACvC,KAAK;SACN,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,IAAkB,EAAE,EAAgB,EAAE,KAAgB,EAAE,IAAmB;QAClF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,IAAI;YACJ,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACnB,KAAK;SACN,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAiB,EAAE,QAAgB;QACvC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;CACF"}
|
package/dist/mark-set.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import type { Mark } from "./types.js";
|
|
2
|
+
/** Rendering hints for one visible row, derived from the marks that cover it. */
|
|
3
|
+
export interface RowDecoration {
|
|
4
|
+
row: number;
|
|
5
|
+
background?: string;
|
|
6
|
+
gutterBackground?: string;
|
|
7
|
+
sign?: {
|
|
8
|
+
text: string;
|
|
9
|
+
fg?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
2
12
|
export declare class MarkSet {
|
|
3
13
|
#private;
|
|
4
14
|
readonly namespace: string;
|
|
@@ -7,15 +17,7 @@ export declare class MarkSet {
|
|
|
7
17
|
get size(): number;
|
|
8
18
|
marksAtLine(line: number): Mark[];
|
|
9
19
|
marksInRange(from: number, to: number): Mark[];
|
|
10
|
-
forVisibleRows(from: number, to: number): Generator<
|
|
11
|
-
row: number;
|
|
12
|
-
background?: string;
|
|
13
|
-
gutterBackground?: string;
|
|
14
|
-
sign?: {
|
|
15
|
-
text: string;
|
|
16
|
-
fg?: string;
|
|
17
|
-
};
|
|
18
|
-
}>;
|
|
20
|
+
forVisibleRows(from: number, to: number): Generator<RowDecoration>;
|
|
19
21
|
[Symbol.iterator](): Iterator<Mark>;
|
|
20
22
|
}
|
|
21
23
|
//# sourceMappingURL=mark-set.d.ts.map
|
package/dist/mark-set.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-set.d.ts","sourceRoot":"","sources":["../src/mark-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mark-set.d.ts","sourceRoot":"","sources":["../src/mark-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtC;AAWD,qBAAa,OAAO;;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAK1B,YAAY,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAa7D;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAqChC;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,CAY7C;IAEA,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAuBlE;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAElC;CACF"}
|
package/dist/mark-set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-set.js","sourceRoot":"","sources":["../src/mark-set.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mark-set.js","sourceRoot":"","sources":["../src/mark-set.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type { MarkPosition, MarkRange, MarkStyle, Mark, MarkPriority } from "./t
|
|
|
2
2
|
export { MarkPriorities } from "./types.js";
|
|
3
3
|
|
|
4
4
|
export { MarkSet } from "./mark-set.js";
|
|
5
|
+
export type { RowDecoration } from "./mark-set.js";
|
|
5
6
|
export { MarkSetBuilder } from "./mark-set-builder.js";
|
|
6
7
|
|
|
7
8
|
export type { MarkState } from "./mark-state.js";
|
package/src/mark-set-builder.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { MarkSet } from "./mark-set.js";
|
|
|
4
4
|
export class MarkSetBuilder {
|
|
5
5
|
readonly #marks: Mark[] = [];
|
|
6
6
|
|
|
7
|
-
addLine(line: number, style: MarkStyle, data?:
|
|
7
|
+
addLine(line: number, style: MarkStyle, data?: Mark["data"]): this {
|
|
8
8
|
this.#marks.push({
|
|
9
9
|
data,
|
|
10
10
|
range: { from: { line }, to: { line } },
|
|
@@ -13,7 +13,7 @@ export class MarkSetBuilder {
|
|
|
13
13
|
return this;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
addRange(from: MarkPosition, to: MarkPosition, style: MarkStyle, data?:
|
|
16
|
+
addRange(from: MarkPosition, to: MarkPosition, style: MarkStyle, data?: Mark["data"]): this {
|
|
17
17
|
this.#marks.push({
|
|
18
18
|
data,
|
|
19
19
|
range: { from, to },
|
package/src/mark-set.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { Mark } from "./types.js";
|
|
2
2
|
|
|
3
|
+
/** Rendering hints for one visible row, derived from the marks that cover it. */
|
|
4
|
+
export interface RowDecoration {
|
|
5
|
+
row: number;
|
|
6
|
+
background?: string;
|
|
7
|
+
gutterBackground?: string;
|
|
8
|
+
sign?: { text: string; fg?: string };
|
|
9
|
+
}
|
|
10
|
+
|
|
3
11
|
const deepFreezeMark = function deepFreezeMark(mark: Mark): Mark {
|
|
4
12
|
Object.freeze(mark.range.from);
|
|
5
13
|
Object.freeze(mark.range.to);
|
|
@@ -88,26 +96,13 @@ export class MarkSet {
|
|
|
88
96
|
return results;
|
|
89
97
|
}
|
|
90
98
|
|
|
91
|
-
*forVisibleRows(
|
|
92
|
-
from: number,
|
|
93
|
-
to: number,
|
|
94
|
-
): Generator<{
|
|
95
|
-
row: number;
|
|
96
|
-
background?: string;
|
|
97
|
-
gutterBackground?: string;
|
|
98
|
-
sign?: { text: string; fg?: string };
|
|
99
|
-
}> {
|
|
99
|
+
*forVisibleRows(from: number, to: number): Generator<RowDecoration> {
|
|
100
100
|
const marks = this.marksInRange(from, to);
|
|
101
101
|
for (const mark of marks) {
|
|
102
102
|
const startLine = Math.max(from, mark.range.from.line);
|
|
103
103
|
const endLine = Math.min(to, mark.range.to.line);
|
|
104
104
|
for (let line = startLine; line <= endLine; line += 1) {
|
|
105
|
-
const decoration: {
|
|
106
|
-
row: number;
|
|
107
|
-
background?: string;
|
|
108
|
-
gutterBackground?: string;
|
|
109
|
-
sign?: { text: string; fg?: string };
|
|
110
|
-
} = { row: line };
|
|
105
|
+
const decoration: RowDecoration = { row: line };
|
|
111
106
|
|
|
112
107
|
if ((mark.style.background?.length ?? 0) > 0) {
|
|
113
108
|
decoration.background = mark.style.background;
|