@spyglassmc/java-edition 0.1.2 → 0.3.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.
Files changed (77) hide show
  1. package/lib/binder/index.d.ts +1 -1
  2. package/lib/binder/index.js +11 -17
  3. package/lib/common/index.js +6 -33
  4. package/lib/dependency/common.js +6 -9
  5. package/lib/dependency/index.d.ts +6 -6
  6. package/lib/dependency/index.js +18 -49
  7. package/lib/dependency/mcmeta.d.ts +2 -2
  8. package/lib/dependency/mcmeta.js +8 -37
  9. package/lib/index.d.ts +3 -3
  10. package/lib/index.js +21 -48
  11. package/lib/json/checker/data/advancement.d.ts +13 -13
  12. package/lib/json/checker/data/advancement.js +263 -266
  13. package/lib/json/checker/data/biome.d.ts +3 -3
  14. package/lib/json/checker/data/biome.js +98 -101
  15. package/lib/json/checker/data/common.d.ts +1 -1
  16. package/lib/json/checker/data/common.js +145 -152
  17. package/lib/json/checker/data/dimension.d.ts +3 -3
  18. package/lib/json/checker/data/dimension.js +148 -151
  19. package/lib/json/checker/data/feature.d.ts +8 -8
  20. package/lib/json/checker/data/feature.js +370 -373
  21. package/lib/json/checker/data/index.d.ts +2 -2
  22. package/lib/json/checker/data/index.js +36 -39
  23. package/lib/json/checker/data/loot_table.d.ts +7 -7
  24. package/lib/json/checker/data/loot_table.js +125 -128
  25. package/lib/json/checker/data/recipe.d.ts +1 -1
  26. package/lib/json/checker/data/recipe.js +25 -28
  27. package/lib/json/checker/data/structure.d.ts +7 -7
  28. package/lib/json/checker/data/structure.js +80 -83
  29. package/lib/json/checker/data/tag.d.ts +6 -6
  30. package/lib/json/checker/data/tag.js +23 -26
  31. package/lib/json/checker/data/text_component.d.ts +1 -1
  32. package/lib/json/checker/data/text_component.js +61 -64
  33. package/lib/json/checker/index.js +14 -19
  34. package/lib/json/checker/util/advancement.d.ts +1 -1
  35. package/lib/json/checker/util/advancement.js +6 -10
  36. package/lib/json/checker/util/block_states.d.ts +1 -1
  37. package/lib/json/checker/util/block_states.js +25 -53
  38. package/lib/json/checker/util/color.d.ts +1 -1
  39. package/lib/json/checker/util/color.js +24 -29
  40. package/lib/json/checker/util/index.d.ts +7 -7
  41. package/lib/json/checker/util/index.js +7 -23
  42. package/lib/json/checker/util/nbt.d.ts +1 -1
  43. package/lib/json/checker/util/nbt.js +23 -28
  44. package/lib/json/checker/util/recipe.d.ts +1 -1
  45. package/lib/json/checker/util/recipe.js +4 -8
  46. package/lib/json/checker/util/uuid.d.ts +1 -1
  47. package/lib/json/checker/util/uuid.js +4 -7
  48. package/lib/json/checker/util/version.d.ts +2 -2
  49. package/lib/json/checker/util/version.js +7 -13
  50. package/lib/json/index.d.ts +1 -1
  51. package/lib/json/index.js +4 -31
  52. package/lib/mcfunction/checker/index.d.ts +1 -1
  53. package/lib/mcfunction/checker/index.js +24 -53
  54. package/lib/mcfunction/colorizer/index.d.ts +1 -1
  55. package/lib/mcfunction/colorizer/index.js +6 -35
  56. package/lib/mcfunction/common/index.js +7 -33
  57. package/lib/mcfunction/completer/argument.js +93 -120
  58. package/lib/mcfunction/completer/index.d.ts +1 -1
  59. package/lib/mcfunction/completer/index.js +1 -17
  60. package/lib/mcfunction/index.d.ts +5 -5
  61. package/lib/mcfunction/index.js +16 -43
  62. package/lib/mcfunction/inlayHintProvider.js +3 -30
  63. package/lib/mcfunction/node/argument.d.ts +7 -7
  64. package/lib/mcfunction/node/argument.js +38 -63
  65. package/lib/mcfunction/node/index.d.ts +1 -1
  66. package/lib/mcfunction/node/index.js +1 -17
  67. package/lib/mcfunction/parser/argument.d.ts +1 -1
  68. package/lib/mcfunction/parser/argument.js +72 -100
  69. package/lib/mcfunction/parser/index.d.ts +1 -1
  70. package/lib/mcfunction/parser/index.js +1 -17
  71. package/lib/mcfunction/signatureHelpProvider.js +3 -30
  72. package/lib/mcfunction/tree/argument.js +1 -2
  73. package/lib/mcfunction/tree/index.d.ts +1 -1
  74. package/lib/mcfunction/tree/index.js +1 -17
  75. package/lib/mcfunction/tree/patch.d.ts +1 -1
  76. package/lib/mcfunction/tree/patch.js +5 -9
  77. package/package.json +8 -7
@@ -1,44 +1,17 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.register = exports.getTypesFromEntity = exports.command = void 0;
27
- const core = __importStar(require("@spyglassmc/core"));
28
- const json = __importStar(require("@spyglassmc/json"));
29
- const lib_1 = require("@spyglassmc/locales/lib");
30
- const mcf = __importStar(require("@spyglassmc/mcfunction"));
31
- const nbt = __importStar(require("@spyglassmc/nbt"));
32
- const common_1 = require("../../common");
33
- const text_component_1 = require("../../json/checker/data/text_component");
34
- const node_1 = require("../node");
35
- const command = (node, ctx) => {
1
+ import * as core from '@spyglassmc/core';
2
+ import * as json from '@spyglassmc/json';
3
+ import { localize } from '@spyglassmc/locales';
4
+ import * as mcf from '@spyglassmc/mcfunction';
5
+ import * as nbt from '@spyglassmc/nbt';
6
+ import { getTagValues } from '../../common/index.js';
7
+ import { text_component } from '../../json/checker/data/text_component.js';
8
+ import { BlockNode, EntityNode, ItemNode, ParticleNode } from '../node/index.js';
9
+ export const command = (node, ctx) => {
36
10
  if (node.slash && node.parent && mcf.McfunctionNode.is(node.parent)) {
37
- ctx.err.report((0, lib_1.localize)('unexpected-leading-slash'), node.slash);
11
+ ctx.err.report(localize('unexpected-leading-slash'), node.slash);
38
12
  }
39
13
  rootCommand(node.children, 0, ctx);
40
14
  };
41
- exports.command = command;
42
15
  const getName = (nodes, index) => {
43
16
  return nodes[index]?.path[nodes[index].path.length - 1];
44
17
  };
@@ -47,20 +20,20 @@ const getNode = (nodes, index) => {
47
20
  };
48
21
  const rootCommand = (nodes, index, ctx) => {
49
22
  for (const { children: [node] } of nodes) {
50
- if (node_1.BlockNode.is(node)) {
23
+ if (BlockNode.is(node)) {
51
24
  block(node, ctx);
52
25
  }
53
- else if (node_1.EntityNode.is(node)) {
26
+ else if (EntityNode.is(node)) {
54
27
  entity(node, ctx);
55
28
  }
56
- else if (node_1.ItemNode.is(node)) {
29
+ else if (ItemNode.is(node)) {
57
30
  item(node, ctx);
58
31
  }
59
- else if (node_1.ParticleNode.is(node)) {
32
+ else if (ParticleNode.is(node)) {
60
33
  particle(node, ctx);
61
34
  }
62
35
  else if (json.JsonNode.is(node)) {
63
- (0, text_component_1.text_component)(node, { ...ctx, context: '' });
36
+ text_component(node, { ...ctx, context: '' });
64
37
  }
65
38
  }
66
39
  if (getName(nodes, index) === 'data') {
@@ -162,7 +135,7 @@ const entity = (node, ctx) => {
162
135
  if (!nbtPair) {
163
136
  return;
164
137
  }
165
- const types = (0, exports.getTypesFromEntity)(node, ctx);
138
+ const types = getTypesFromEntity(node, ctx);
166
139
  const nbtValue = nbtPair.value;
167
140
  nbt.checker.index('entity_type', types)(nbtValue, ctx);
168
141
  };
@@ -195,8 +168,8 @@ const dataMergeTarget = (nodes, index, ctx) => {
195
168
  case 'entity': {
196
169
  const entityNode = getNode(nodes, index + 1);
197
170
  const nbtNode = getNode(nodes, index + 2);
198
- if (node_1.EntityNode.is(entityNode) && nbt.NbtCompoundNode.is(nbtNode)) {
199
- const types = (0, exports.getTypesFromEntity)(entityNode, ctx);
171
+ if (EntityNode.is(entityNode) && nbt.NbtCompoundNode.is(nbtNode)) {
172
+ const types = getTypesFromEntity(entityNode, ctx);
200
173
  nbt.checker.index('entity_type', types)(nbtNode, ctx);
201
174
  }
202
175
  break;
@@ -229,8 +202,8 @@ const nbtPath = (nodes, index, ctx) => {
229
202
  case 'entity': {
230
203
  const entityNode = getNode(nodes, index + 1);
231
204
  const nbtNode = getNode(nodes, index + 2);
232
- if (node_1.EntityNode.is(entityNode) && nbt.NbtPathNode.is(nbtNode)) {
233
- const types = (0, exports.getTypesFromEntity)(entityNode, ctx);
205
+ if (EntityNode.is(entityNode) && nbt.NbtPathNode.is(nbtNode)) {
206
+ const types = getTypesFromEntity(entityNode, ctx);
234
207
  nbt.checker.path('entity_type', types)(nbtNode, ctx);
235
208
  }
236
209
  break;
@@ -256,7 +229,7 @@ const summonNbt = (nodes, index, ctx) => {
256
229
  }
257
230
  };
258
231
  //#endregion
259
- const getTypesFromEntity = (entity, ctx) => {
232
+ export const getTypesFromEntity = (entity, ctx) => {
260
233
  if (entity.playerName !== undefined || entity.selector?.playersOnly) {
261
234
  return ['minecraft:player'];
262
235
  }
@@ -276,7 +249,7 @@ const getTypesFromEntity = (entity, ctx) => {
276
249
  }
277
250
  const value = core.ResourceLocationNode.toString(valueNode.value, 'full');
278
251
  if (value.startsWith(core.ResourceLocation.TagPrefix)) {
279
- const tagValues = (0, common_1.getTagValues)('tag/entity_type', value.slice(1), ctx);
252
+ const tagValues = getTagValues('tag/entity_type', value.slice(1), ctx);
280
253
  types = types.filter(t => tagValues.includes(t));
281
254
  }
282
255
  else {
@@ -287,13 +260,11 @@ const getTypesFromEntity = (entity, ctx) => {
287
260
  }
288
261
  return undefined;
289
262
  };
290
- exports.getTypesFromEntity = getTypesFromEntity;
291
- function register(meta) {
292
- meta.registerChecker('mcfunction:command', exports.command);
263
+ export function register(meta) {
264
+ meta.registerChecker('mcfunction:command', command);
293
265
  meta.registerChecker('mcfunction:block', block);
294
266
  meta.registerChecker('mcfunction:entity', entity);
295
267
  meta.registerChecker('mcfunction:item', item);
296
268
  meta.registerChecker('mcfunction:particle', particle);
297
269
  }
298
- exports.register = register;
299
270
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
1
  import * as core from '@spyglassmc/core';
2
- import type { ObjectiveCriteriaNode, VectorNode } from '../node';
2
+ import type { ObjectiveCriteriaNode, VectorNode } from '../node/index.js';
3
3
  export declare const objectiveCriterion: core.Colorizer<ObjectiveCriteriaNode>;
4
4
  export declare const vector: core.Colorizer<VectorNode>;
5
5
  export declare function register(meta: core.MetaRegistry): void;
@@ -1,42 +1,13 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.register = exports.vector = exports.objectiveCriterion = void 0;
27
- const core = __importStar(require("@spyglassmc/core"));
28
- const objectiveCriterion = node => [
1
+ import * as core from '@spyglassmc/core';
2
+ export const objectiveCriterion = node => [
29
3
  core.ColorToken.create(node, 'type'),
30
4
  ];
31
- exports.objectiveCriterion = objectiveCriterion;
32
- const vector = node => {
5
+ export const vector = node => {
33
6
  return [core.ColorToken.create(node, 'vector')];
34
7
  };
35
- exports.vector = vector;
36
- function register(meta) {
8
+ export function register(meta) {
37
9
  meta.registerColorizer('mcfunction:coordinate', core.colorizer.number);
38
- meta.registerColorizer('mcfunction:vector', exports.vector);
39
- meta.registerColorizer('mcfunction:objective_criteria', exports.objectiveCriterion);
10
+ meta.registerColorizer('mcfunction:vector', vector);
11
+ meta.registerColorizer('mcfunction:objective_criteria', objectiveCriterion);
40
12
  }
41
- exports.register = register;
42
13
  //# sourceMappingURL=index.js.map
@@ -1,33 +1,7 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.SwizzleArgumentValues = exports.ScoreboardSlotArgumentValues = exports.OperationArgumentValues = exports.ItemSlotArgumentValues = exports.EntityAnchorArgumentValues = exports.ColorArgumentValues = void 0;
27
- const core = __importStar(require("@spyglassmc/core"));
28
- exports.ColorArgumentValues = [...core.Color.ColorNames, 'reset'];
29
- exports.EntityAnchorArgumentValues = ['feet', 'eyes'];
30
- exports.ItemSlotArgumentValues = [
1
+ import * as core from '@spyglassmc/core';
2
+ export const ColorArgumentValues = [...core.Color.ColorNames, 'reset'];
3
+ export const EntityAnchorArgumentValues = ['feet', 'eyes'];
4
+ export const ItemSlotArgumentValues = [
31
5
  ...[...Array(54).keys()].map(n => `container.${n}`),
32
6
  ...[...Array(27).keys()].map(n => `enderchest.${n}`),
33
7
  ...[...Array(15).keys()].map(n => `horse.${n}`),
@@ -38,12 +12,12 @@ exports.ItemSlotArgumentValues = [
38
12
  'horse.armor', 'horse.chest', 'horse.saddle',
39
13
  'weapon', 'weapon.mainhand', 'weapon.offhand',
40
14
  ];
41
- exports.OperationArgumentValues = ['=', '+=', '-=', '*=', '/=', '%=', '<', '>', '><'];
42
- exports.ScoreboardSlotArgumentValues = [
15
+ export const OperationArgumentValues = ['=', '+=', '-=', '*=', '/=', '%=', '<', '>', '><'];
16
+ export const ScoreboardSlotArgumentValues = [
43
17
  'belowName', 'list', 'sidebar',
44
18
  ...core.Color.ColorNames.map(n => `sidebar.team.${n}`),
45
19
  ];
46
- exports.SwizzleArgumentValues = [
20
+ export const SwizzleArgumentValues = [
47
21
  'x', 'xy', 'xz', 'xyz', 'xzy',
48
22
  'y', 'yx', 'yz', 'yxz', 'yzx',
49
23
  'z', 'zx', 'zy', 'zxy', 'zyx',
@@ -1,40 +1,14 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.register = exports.getMockNodes = void 0;
27
- const core_1 = require("@spyglassmc/core");
28
- const json = __importStar(require("@spyglassmc/json"));
29
- const locales_1 = require("@spyglassmc/locales");
30
- const common_1 = require("../../common");
31
- const common_2 = require("../common");
32
- const node_1 = require("../node");
33
- const getMockNodes = (rawTreeNode, range) => {
1
+ import { AstNode, BooleanNode, BrigadierStringOptions, completer, CompletionItem, FloatNode, getStates, InsertTextBuilder, IntegerNode, LiteralNode, Range, ResourceLocation, ResourceLocationNode, StringNode, SymbolNode } from '@spyglassmc/core';
2
+ import * as json from '@spyglassmc/json';
3
+ import { localeQuote, localize } from '@spyglassmc/locales';
4
+ import { getTagValues } from '../../common/index.js';
5
+ import { ColorArgumentValues, EntityAnchorArgumentValues, ItemSlotArgumentValues, OperationArgumentValues, ScoreboardSlotArgumentValues, SwizzleArgumentValues } from '../common/index.js';
6
+ import { BlockNode, CoordinateNode, EntitySelectorNode, IntRangeNode, ItemNode, ObjectiveCriteriaNode, ParticleNode, ScoreHolderNode, VectorNode } from '../node/index.js';
7
+ export const getMockNodes = (rawTreeNode, range) => {
34
8
  const treeNode = rawTreeNode;
35
9
  switch (treeNode.parser) {
36
10
  case 'brigadier:bool':
37
- return core_1.BooleanNode.mock(range);
11
+ return BooleanNode.mock(range);
38
12
  case 'brigadier:double':
39
13
  case 'brigadier:float':
40
14
  case 'brigadier:integer':
@@ -46,20 +20,20 @@ const getMockNodes = (rawTreeNode, range) => {
46
20
  return [];
47
21
  case 'brigadier:string':
48
22
  return treeNode.properties.type === 'phrase'
49
- ? core_1.StringNode.mock(range, core_1.BrigadierStringOptions)
23
+ ? StringNode.mock(range, BrigadierStringOptions)
50
24
  : [];
51
25
  case 'minecraft:angle':
52
- return node_1.CoordinateNode.mock(range);
26
+ return CoordinateNode.mock(range);
53
27
  case 'minecraft:block_pos':
54
- return node_1.VectorNode.mock(range, { dimension: 3, integersOnly: true });
28
+ return VectorNode.mock(range, { dimension: 3, integersOnly: true });
55
29
  case 'minecraft:block_predicate':
56
- return node_1.BlockNode.mock(range, true);
30
+ return BlockNode.mock(range, true);
57
31
  case 'minecraft:block_state':
58
- return node_1.BlockNode.mock(range, false);
32
+ return BlockNode.mock(range, false);
59
33
  case 'minecraft:color':
60
- return core_1.LiteralNode.mock(range, { pool: common_2.ColorArgumentValues });
34
+ return LiteralNode.mock(range, { pool: ColorArgumentValues });
61
35
  case 'minecraft:column_pos':
62
- return node_1.VectorNode.mock(range, { dimension: 2, integersOnly: true });
36
+ return VectorNode.mock(range, { dimension: 2, integersOnly: true });
63
37
  case 'minecraft:component':
64
38
  return [
65
39
  json.JsonArrayNode.mock(range),
@@ -67,60 +41,60 @@ const getMockNodes = (rawTreeNode, range) => {
67
41
  json.JsonStringNode.mock(range),
68
42
  ];
69
43
  case 'minecraft:dimension':
70
- return core_1.ResourceLocationNode.mock(range, { category: 'dimension' });
44
+ return ResourceLocationNode.mock(range, { category: 'dimension' });
71
45
  case 'minecraft:entity':
72
46
  case 'minecraft:game_profile':
73
- return node_1.EntitySelectorNode.mock(range);
47
+ return EntitySelectorNode.mock(range);
74
48
  case 'minecraft:entity_anchor':
75
- return core_1.LiteralNode.mock(range, { pool: common_2.EntityAnchorArgumentValues });
49
+ return LiteralNode.mock(range, { pool: EntityAnchorArgumentValues });
76
50
  case 'minecraft:entity_summon':
77
- return core_1.ResourceLocationNode.mock(range, { category: 'entity_type' });
51
+ return ResourceLocationNode.mock(range, { category: 'entity_type' });
78
52
  case 'minecraft:function':
79
- return core_1.ResourceLocationNode.mock(range, { category: 'function' });
53
+ return ResourceLocationNode.mock(range, { category: 'function' });
80
54
  case 'minecraft:int_range':
81
- return node_1.IntRangeNode.mock(range);
55
+ return IntRangeNode.mock(range);
82
56
  case 'minecraft:item_enchantment':
83
- return core_1.ResourceLocationNode.mock(range, { category: 'enchantment' });
57
+ return ResourceLocationNode.mock(range, { category: 'enchantment' });
84
58
  case 'minecraft:item_predicate':
85
- return node_1.ItemNode.mock(range, true);
59
+ return ItemNode.mock(range, true);
86
60
  case 'minecraft:item_slot':
87
- return core_1.LiteralNode.mock(range, { pool: common_2.ItemSlotArgumentValues });
61
+ return LiteralNode.mock(range, { pool: ItemSlotArgumentValues });
88
62
  case 'minecraft:item_stack':
89
- return node_1.ItemNode.mock(range, false);
63
+ return ItemNode.mock(range, false);
90
64
  case 'minecraft:mob_effect':
91
- return core_1.ResourceLocationNode.mock(range, { category: 'mob_effect' });
65
+ return ResourceLocationNode.mock(range, { category: 'mob_effect' });
92
66
  case 'minecraft:objective':
93
- return core_1.SymbolNode.mock(range, { category: 'objective' });
67
+ return SymbolNode.mock(range, { category: 'objective' });
94
68
  case 'minecraft:objective_criteria':
95
- return node_1.ObjectiveCriteriaNode.mock(range);
69
+ return ObjectiveCriteriaNode.mock(range);
96
70
  case 'minecraft:operation':
97
- return core_1.LiteralNode.mock(range, { pool: common_2.OperationArgumentValues, colorTokenType: 'operator' });
71
+ return LiteralNode.mock(range, { pool: OperationArgumentValues, colorTokenType: 'operator' });
98
72
  case 'minecraft:particle':
99
- return node_1.ParticleNode.mock(range);
73
+ return ParticleNode.mock(range);
100
74
  case 'minecraft:resource':
101
75
  case 'minecraft:resource_or_tag':
102
- return core_1.ResourceLocationNode.mock(range, {
103
- category: core_1.ResourceLocation.shorten(treeNode.properties.registry),
76
+ return ResourceLocationNode.mock(range, {
77
+ category: ResourceLocation.shorten(treeNode.properties.registry),
104
78
  allowTag: treeNode.parser === 'minecraft:resource_or_tag',
105
79
  });
106
80
  case 'minecraft:resource_location':
107
- return core_1.ResourceLocationNode.mock(range, treeNode.properties ?? { pool: [], allowUnknown: true });
81
+ return ResourceLocationNode.mock(range, treeNode.properties ?? { pool: [], allowUnknown: true });
108
82
  case 'minecraft:rotation':
109
- return node_1.VectorNode.mock(range, { dimension: 2, noLocal: true });
83
+ return VectorNode.mock(range, { dimension: 2, noLocal: true });
110
84
  case 'minecraft:scoreboard_slot':
111
- return core_1.LiteralNode.mock(range, { pool: common_2.ScoreboardSlotArgumentValues });
85
+ return LiteralNode.mock(range, { pool: ScoreboardSlotArgumentValues });
112
86
  case 'minecraft:score_holder':
113
- return node_1.ScoreHolderNode.mock(range);
87
+ return ScoreHolderNode.mock(range);
114
88
  case 'minecraft:swizzle':
115
- return core_1.LiteralNode.mock(range, { pool: common_2.SwizzleArgumentValues });
89
+ return LiteralNode.mock(range, { pool: SwizzleArgumentValues });
116
90
  case 'minecraft:team':
117
- return core_1.SymbolNode.mock(range, { category: 'team' });
91
+ return SymbolNode.mock(range, { category: 'team' });
118
92
  case 'minecraft:vec2':
119
- return node_1.VectorNode.mock(range, { dimension: 2, integersOnly: true });
93
+ return VectorNode.mock(range, { dimension: 2, integersOnly: true });
120
94
  case 'minecraft:vec3':
121
- return node_1.VectorNode.mock(range, { dimension: 3 });
95
+ return VectorNode.mock(range, { dimension: 3 });
122
96
  case 'spyglassmc:tag':
123
- return core_1.SymbolNode.mock(range, { category: 'tag' });
97
+ return SymbolNode.mock(range, { category: 'tag' });
124
98
  // ==== Unimplemented ====
125
99
  case 'minecraft:nbt_compound_tag':
126
100
  case 'minecraft:nbt_path':
@@ -130,33 +104,32 @@ const getMockNodes = (rawTreeNode, range) => {
130
104
  return [];
131
105
  }
132
106
  };
133
- exports.getMockNodes = getMockNodes;
134
107
  const block = (node, ctx) => {
135
108
  const ans = [];
136
- if (core_1.Range.contains(node.id, ctx.offset, true)) {
137
- ans.push(...core_1.completer.resourceLocation(node.id, ctx));
109
+ if (Range.contains(node.id, ctx.offset, true)) {
110
+ ans.push(...completer.resourceLocation(node.id, ctx));
138
111
  }
139
- if (node.states && core_1.Range.contains(core_1.Range.translate(node.states, 1, -1), ctx.offset, true)) {
112
+ if (node.states && Range.contains(Range.translate(node.states, 1, -1), ctx.offset, true)) {
140
113
  ans.push(...blockStates(node.states, ctx));
141
114
  }
142
115
  return ans;
143
116
  };
144
117
  const blockStates = (node, ctx) => {
145
- if (!node_1.BlockNode.is(node.parent)) {
118
+ if (!BlockNode.is(node.parent)) {
146
119
  return [];
147
120
  }
148
121
  const idNode = node.parent.id;
149
- const id = core_1.ResourceLocationNode.toString(idNode, 'full');
150
- const blocks = idNode.isTag ? (0, common_1.getTagValues)('tag/block', id, ctx) : [id];
151
- const states = (0, core_1.getStates)('block', blocks, ctx);
152
- return core_1.completer.record({
122
+ const id = ResourceLocationNode.toString(idNode, 'full');
123
+ const blocks = idNode.isTag ? getTagValues('tag/block', id, ctx) : [id];
124
+ const states = getStates('block', blocks, ctx);
125
+ return completer.record({
153
126
  key: (_record, pair, _ctx, range, insertValue, insertComma, existingKeys) => {
154
127
  return Object.keys(states)
155
128
  .filter(k => pair?.key?.value === k || !existingKeys.some(ek => ek.value === k))
156
- .map(k => core_1.CompletionItem.create(k, range, {
129
+ .map(k => CompletionItem.create(k, range, {
157
130
  kind: 10 /* CompletionKind.Property */,
158
- detail: (0, locales_1.localize)('mcfunction.completer.block.states.default-value', (0, locales_1.localeQuote)(states[k][0])),
159
- insertText: new core_1.InsertTextBuilder()
131
+ detail: localize('mcfunction.completer.block.states.default-value', localeQuote(states[k][0])),
132
+ insertText: new InsertTextBuilder()
160
133
  .literal(k)
161
134
  .if(insertValue, b => b.literal('=').placeholder(...states[k]))
162
135
  .if(insertComma, b => b.literal(','))
@@ -165,7 +138,7 @@ const blockStates = (node, ctx) => {
165
138
  },
166
139
  value: (_record, pair, ctx) => {
167
140
  if (pair.key && states[pair.key.value]) {
168
- return states[pair.key.value].map(v => core_1.CompletionItem.create(v, pair.value ?? ctx.offset, {
141
+ return states[pair.key.value].map(v => CompletionItem.create(v, pair.value ?? ctx.offset, {
169
142
  kind: 12 /* CompletionKind.Value */,
170
143
  }));
171
144
  }
@@ -174,85 +147,86 @@ const blockStates = (node, ctx) => {
174
147
  })(node, ctx);
175
148
  };
176
149
  const coordinate = (node, _ctx) => {
177
- return [core_1.CompletionItem.create('~', node)];
150
+ return [CompletionItem.create('~', node)];
178
151
  };
179
152
  const item = (node, ctx) => {
180
153
  const ans = [];
181
- if (core_1.Range.contains(node.id, ctx.offset, true)) {
182
- ans.push(...core_1.completer.resourceLocation(node.id, ctx));
154
+ if (Range.contains(node.id, ctx.offset, true)) {
155
+ ans.push(...completer.resourceLocation(node.id, ctx));
183
156
  }
184
157
  return ans;
185
158
  };
186
159
  const objectiveCriteria = (node, ctx) => {
187
- const ans = node_1.ObjectiveCriteriaNode.SimpleValues.map(v => core_1.CompletionItem.create(v, node));
188
- if (!node.children?.[0] || core_1.Range.contains(node.children[0], ctx.offset, true)) {
189
- ans.push(...core_1.completer.resourceLocation(node.children?.[0] ?? core_1.ResourceLocationNode.mock(node, { category: 'stat_type', namespacePathSep: '.' }), ctx));
160
+ const ans = ObjectiveCriteriaNode.SimpleValues.map(v => CompletionItem.create(v, node));
161
+ if (!node.children?.[0] || Range.contains(node.children[0], ctx.offset, true)) {
162
+ ans.push(...completer.resourceLocation(node.children?.[0] ?? ResourceLocationNode.mock(node, { category: 'stat_type', namespacePathSep: '.' }), ctx));
190
163
  }
191
- if (node.children?.[1] && core_1.Range.contains(node.children[1], ctx.offset, true)) {
192
- ans.push(...core_1.completer.resourceLocation(node.children[1], ctx));
164
+ if (node.children?.[1] && Range.contains(node.children[1], ctx.offset, true)) {
165
+ ans.push(...completer.resourceLocation(node.children[1], ctx));
193
166
  }
194
167
  return ans;
195
168
  };
196
169
  const particle = (node, ctx) => {
197
- const child = core_1.AstNode.findChild(node, ctx.offset, true);
170
+ const child = AstNode.findChild(node, ctx.offset, true);
198
171
  if (child) {
199
- return core_1.completer.dispatch(child, ctx);
172
+ return completer.dispatch(child, ctx);
200
173
  }
201
- const id = core_1.ResourceLocationNode.toString(node.id, 'short');
174
+ const id = ResourceLocationNode.toString(node.id, 'short');
202
175
  const map = {
203
- block: [node_1.BlockNode.mock(ctx.offset, false)],
204
- block_marker: [node_1.BlockNode.mock(ctx.offset, false)],
205
- dust: [node_1.VectorNode.mock(ctx.offset, { dimension: 3 }), core_1.FloatNode.mock(ctx.offset)],
206
- dust_color_transition: [node_1.VectorNode.mock(ctx.offset, { dimension: 3 }), core_1.FloatNode.mock(ctx.offset), node_1.VectorNode.mock(ctx.offset, { dimension: 3 })],
207
- falling_dust: [node_1.BlockNode.mock(ctx.offset, false)],
208
- item: [node_1.ItemNode.mock(ctx.offset, false)],
209
- sculk_charge: [core_1.FloatNode.mock(ctx.offset)],
210
- vibration: [node_1.VectorNode.mock(ctx.offset, { dimension: 3 }), node_1.VectorNode.mock(ctx.offset, { dimension: 3 }), core_1.IntegerNode.mock(ctx.offset)],
176
+ block: [BlockNode.mock(ctx.offset, false)],
177
+ block_marker: [BlockNode.mock(ctx.offset, false)],
178
+ dust: [VectorNode.mock(ctx.offset, { dimension: 3 }), FloatNode.mock(ctx.offset)],
179
+ dust_color_transition: [VectorNode.mock(ctx.offset, { dimension: 3 }), FloatNode.mock(ctx.offset), VectorNode.mock(ctx.offset, { dimension: 3 })],
180
+ falling_dust: [BlockNode.mock(ctx.offset, false)],
181
+ item: [ItemNode.mock(ctx.offset, false)],
182
+ sculk_charge: [FloatNode.mock(ctx.offset)],
183
+ shriek: [IntegerNode.mock(ctx.offset)],
184
+ vibration: [VectorNode.mock(ctx.offset, { dimension: 3 }), VectorNode.mock(ctx.offset, { dimension: 3 }), IntegerNode.mock(ctx.offset)],
211
185
  };
212
- if (node_1.ParticleNode.isSpecialType(id)) {
186
+ if (ParticleNode.isSpecialType(id)) {
213
187
  const numParamsBefore = node.children?.slice(1).filter(n => n.range.end < ctx.offset).length ?? 0;
214
188
  const mock = map[id][numParamsBefore];
215
189
  if (mock) {
216
- return core_1.completer.dispatch(mock, ctx);
190
+ return completer.dispatch(mock, ctx);
217
191
  }
218
192
  }
219
193
  return [];
220
194
  };
221
195
  const scoreHolder = (node, ctx) => {
222
196
  let ans;
223
- if (node.selector && core_1.Range.contains(node.selector, ctx.offset, true)) {
197
+ if (node.selector && Range.contains(node.selector, ctx.offset, true)) {
224
198
  ans = selector(node.selector, ctx);
225
- if (core_1.Range.contains(node.children[0], ctx.offset, true)) {
226
- ans.push(...core_1.completer.symbol(core_1.SymbolNode.mock(node, { category: 'score_holder' }), ctx));
199
+ if (Range.contains(node.children[0], ctx.offset, true)) {
200
+ ans.push(...completer.symbol(SymbolNode.mock(node, { category: 'score_holder' }), ctx));
227
201
  }
228
202
  }
229
203
  else {
230
- ans = core_1.completer.symbol(node.fakeName ?? core_1.SymbolNode.mock(node, { category: 'score_holder' }), ctx);
231
- ans.push(...selector(node_1.EntitySelectorNode.mock(node), ctx));
204
+ ans = completer.symbol(node.fakeName ?? SymbolNode.mock(node, { category: 'score_holder' }), ctx);
205
+ ans.push(...selector(EntitySelectorNode.mock(node), ctx));
232
206
  }
233
207
  return ans;
234
208
  };
235
209
  const selector = (node, ctx) => {
236
- if (core_1.Range.contains(node.children[0], ctx.offset, true)) {
237
- return core_1.completer.literal(node.children[0], ctx);
210
+ if (Range.contains(node.children[0], ctx.offset, true)) {
211
+ return completer.literal(node.children[0], ctx);
238
212
  }
239
- if (node.arguments && core_1.Range.contains(core_1.Range.translate(node.arguments, 1, -1), ctx.offset, true)) {
213
+ if (node.arguments && Range.contains(Range.translate(node.arguments, 1, -1), ctx.offset, true)) {
240
214
  return selectorArguments(node.arguments, ctx);
241
215
  }
242
216
  return [];
243
217
  };
244
218
  const selectorArguments = (node, ctx) => {
245
219
  const selector = node.parent;
246
- if (!node_1.EntitySelectorNode.is(selector)) {
220
+ if (!EntitySelectorNode.is(selector)) {
247
221
  return [];
248
222
  }
249
- return core_1.completer.record({
223
+ return completer.record({
250
224
  key: (record, pair, _ctx, range, insertValue, insertComma) => {
251
- return [...node_1.EntitySelectorNode.ArgumentKeys]
252
- .filter(k => node_1.EntitySelectorNode.canKeyExist(selector, record, k) === 0 /* EntitySelectorNode.Result.Ok */)
253
- .map(k => core_1.CompletionItem.create(k, range, {
225
+ return [...EntitySelectorNode.ArgumentKeys]
226
+ .filter(k => EntitySelectorNode.canKeyExist(selector, record, k) === 0 /* EntitySelectorNode.Result.Ok */)
227
+ .map(k => CompletionItem.create(k, range, {
254
228
  kind: 10 /* CompletionKind.Property */,
255
- insertText: new core_1.InsertTextBuilder()
229
+ insertText: new InsertTextBuilder()
256
230
  .literal(k)
257
231
  .if(insertValue, b => b.literal('=').placeholder()) // TODO
258
232
  .if(insertComma, b => b.literal(','))
@@ -261,17 +235,17 @@ const selectorArguments = (node, ctx) => {
261
235
  },
262
236
  value: (_record, pair, ctx) => {
263
237
  if (pair.value) {
264
- return core_1.completer.dispatch(pair.value, ctx);
238
+ return completer.dispatch(pair.value, ctx);
265
239
  }
266
240
  return [];
267
241
  },
268
242
  })(node, ctx);
269
243
  };
270
244
  const intRange = (node, _ctx) => {
271
- return [core_1.CompletionItem.create('-2147483648..2147483647', node, { kind: 21 /* CompletionKind.Constant */ })];
245
+ return [CompletionItem.create('-2147483648..2147483647', node, { kind: 21 /* CompletionKind.Constant */ })];
272
246
  };
273
247
  const vector = (node, _ctx) => {
274
- const createCompletion = (coordinate, sortText) => core_1.CompletionItem.create(new Array(node.options.dimension).fill(coordinate).join(' '), node, { sortText });
248
+ const createCompletion = (coordinate, sortText) => CompletionItem.create(new Array(node.options.dimension).fill(coordinate).join(' '), node, { sortText });
275
249
  const ans = [];
276
250
  ans.push(createCompletion('~', 'a'));
277
251
  if (!node.options.noLocal) {
@@ -280,7 +254,7 @@ const vector = (node, _ctx) => {
280
254
  ans.push(createCompletion('0.0', 'c'));
281
255
  return ans;
282
256
  };
283
- function register(meta) {
257
+ export function register(meta) {
284
258
  meta.registerCompleter('mcfunction:block', block);
285
259
  meta.registerCompleter('mcfunction:coordinate', coordinate);
286
260
  meta.registerCompleter('mcfunction:entity_selector', selector);
@@ -292,5 +266,4 @@ function register(meta) {
292
266
  meta.registerCompleter('mcfunction:score_holder', scoreHolder);
293
267
  meta.registerCompleter('mcfunction:vector', vector);
294
268
  }
295
- exports.register = register;
296
269
  //# sourceMappingURL=argument.js.map
@@ -1,2 +1,2 @@
1
- export * from './argument';
1
+ export * from './argument.js';
2
2
  //# sourceMappingURL=index.d.ts.map