Skip to content

Commit 1350bea

Browse files
committed
Updated
1 parent bac39ff commit 1350bea

22 files changed

+185
-336
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2020, Blockception
3+
Copyright (c) 2020, Blockception Ltd
44
All rights reserved.
55

66
Redistribution and use in source and binary forms, with or without

src/general/Words.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import * as vscode from 'vscode';
2+
13
export class RangedWord {
24
text: string;
35
startindex : number;
@@ -9,6 +11,10 @@ export class RangedWord {
911
this.endindex = endindex;
1012
}
1113

14+
ToRange(lineIndex : number) : vscode.Range {
15+
return new vscode.Range(lineIndex, this.startindex, lineIndex, this.endindex);
16+
}
17+
1218
static GetWords(text : string) : RangedWord[] {
1319
var out = new Array<RangedWord>();
1420
var level = 0;

src/mcfunction/diagnostics/DiagnosticsFunctions.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import { doesNotReject } from 'assert';
55

66
export module Errors {
77

8-
export function Missing(type : string, path : string, lineIndex : number, parent : SyntaxItem, collector: vscode.Diagnostic[]) : void {
8+
export function Missing(type : string, command : string, lineIndex : number, parent : SyntaxItem, collector: vscode.Diagnostic[]) : void {
99
collector.push(new vscode.Diagnostic(
1010
new vscode.Range(lineIndex, parent.Text.endindex + 1, lineIndex, parent.Text.endindex + 2),
11-
`Missing '${type}' at ${path}`,
11+
`Missing a '${type}' for the '${command}' command`,
1212
vscode.DiagnosticSeverity.Error
1313
));
1414
}
1515

16-
export function UnknownWords(path : string, AcceptValues : string, lineIndex : number, item : SyntaxItem, collector: vscode.Diagnostic[]) : void {
16+
export function UnknownWords(AcceptValues : string, lineIndex : number, item : SyntaxItem, collector: vscode.Diagnostic[]) : void {
1717
collector.push(new vscode.Diagnostic(
1818
new vscode.Range(lineIndex, item.Text.startindex, lineIndex, item.Text.endindex),
1919
`Unknown value: '${item.Text.text}', accepted values are: '${AcceptValues}'`,

src/mcfunction/diagnostics/commands/ExecuteDiagnostic.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
2323
var XCoord = Selector.Child;
2424
var Parent : SyntaxItem;
2525
if (XCoord == undefined) {
26-
Errors.Missing('coordinate', 'execute <target>', lineIndex, Selector, collector);
26+
Errors.Missing('coordinate', 'execute', lineIndex, Selector, collector);
2727
return;
2828
}
2929

@@ -34,7 +34,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
3434
//Y Coordinate
3535
var YCoord = XCoord.Child;
3636
if (YCoord == undefined) {
37-
Errors.Missing('coordinate', 'execute <target> <x>', lineIndex, XCoord, collector);
37+
Errors.Missing('coordinate', 'execute', lineIndex, XCoord, collector);
3838
return;
3939
}
4040

@@ -43,7 +43,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
4343
//Z Coordinate
4444
var ZCoord = YCoord.Child;
4545
if (ZCoord == undefined) {
46-
Errors.Missing('coordinate', 'execute <target> <x y>', lineIndex, YCoord, collector);
46+
Errors.Missing('coordinate', 'execute', lineIndex, YCoord, collector);
4747
return;
4848
}
4949

@@ -58,7 +58,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
5858
var Next = Parent.Child;
5959

6060
if (Next == undefined){
61-
Errors.Missing('command | detect', 'execute <target> <x y z>', lineIndex, Parent, collector);
61+
Errors.Missing('command | detect', 'execute', lineIndex, Parent, collector);
6262
return;
6363
}
6464

@@ -67,7 +67,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
6767
var XCoord = Next.Child;
6868

6969
if (XCoord == undefined) {
70-
Errors.Missing('coordinate', 'execute <target> <x y z> detect', lineIndex, Selector, collector);
70+
Errors.Missing('coordinate', 'execute', lineIndex, Selector, collector);
7171
return;
7272
}
7373

@@ -78,7 +78,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
7878
//Y Coordinate
7979
var YCoord = XCoord.Child;
8080
if (YCoord == undefined) {
81-
Errors.Missing('coordinate', 'execute <target> <x y z> detect <x>', lineIndex, XCoord, collector);
81+
Errors.Missing('coordinate', 'execute', lineIndex, XCoord, collector);
8282
return;
8383
}
8484

@@ -87,7 +87,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
8787
//Z Coordinate
8888
var ZCoord = YCoord.Child;
8989
if (ZCoord == undefined) {
90-
Errors.Missing('coordinate', 'execute <target> <x y z> detect <x y>', lineIndex, YCoord, collector);
90+
Errors.Missing('coordinate', 'execute', lineIndex, YCoord, collector);
9191
return;
9292
}
9393

@@ -102,7 +102,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
102102
var Block = Parent.Child;
103103

104104
if (Block == undefined){
105-
Errors.Missing('block', 'execute <target> <x y z> detect <x y z>', lineIndex, Parent, collector);
105+
Errors.Missing('block', 'execute', lineIndex, Parent, collector);
106106
return;
107107
}
108108

@@ -112,7 +112,7 @@ export class ExecuteDiagnosticProvider implements DiagnosticProvider {
112112
var Data = Block.Child;
113113

114114
if (Data == undefined){
115-
Errors.Missing('block', 'execute <target> <x y z> detect <x y z>', lineIndex, Block, collector);
115+
Errors.Missing('block', 'execute', lineIndex, Block, collector);
116116
return;
117117
}
118118

src/mcfunction/diagnostics/commands/FunctionDiagnostic.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@ import * as vscode from 'vscode';
22
import * as fs from "fs";
33
import { DiagnosticsManager, DiagnosticProvider } from "../DiagnosticsManager";
44
import { SyntaxItem } from "../../../general/include";
5+
import { Errors } from '../DiagnosticsFunctions';
56

67
export class FunctionCommandDiagnosticProvider implements DiagnosticProvider {
78
//provides diagnostics
89
provideDiagnostic(item: SyntaxItem, lineIndex : number, collector : vscode.Diagnostic[], dm : DiagnosticsManager, document: vscode.TextDocument) : void{
910
var Word = item.Child?.Text;
1011

11-
if (Word == undefined)
12+
if (Word == undefined){
13+
Errors.Missing('path', 'function', lineIndex, item, collector);
1214
return;
15+
}
1316

1417
//check for collection functions
1518
var filepath = document.uri.fsPath;

src/mcfunction/diagnostics/commands/activate.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { DiagnosticsManager } from "../DiagnosticsManager";
22

3+
//Import commands
34
import { AlwaysDayDiagnosticProvider } from "./AlwaysdayDiagnostics";
45
import { ClearDiagnosticProvider } from "./ClearDiagnostics";
56
import { CloneDiagnosticProvider } from "./CloneDiagnostics";
@@ -14,8 +15,18 @@ import { FillDiagnosticProvider } from "./FillDiagnostics";
1415
import { FunctionCommandDiagnosticProvider } from "./FunctionDiagnostic";
1516
import { GamemodeDiagnosticProvider } from "./GamemodeDiagnostics";
1617
import { GameruleDiagnosticProvider } from "./GameruleDiagnostics";
18+
import { XpDiagnosticProvider } from "./XpDiagnostics";
19+
import { WeatherDiagnosticProvider } from "./weatherDiagnostics";
20+
import { LocateDiagnosticProvider } from "./locateDiagnostics";
21+
import { MeDiagnosticProvider } from "./meDiagnostics";
22+
import { MobeventDiagnosticProvider } from "./mobeventDiagnostics";
23+
import { KillDiagnosticProvider } from "./KillDiagnostics";
24+
import { MsgDiagnosticProvider } from "./msgDiagnostics";
25+
import { GiveDiagnosticProvider } from "./giveDiagnostics";
1726

27+
//Add commands to the diagnoser
1828
export function activate(context: DiagnosticsManager) {
29+
console.log('\tThe command diagnosers want to talk to the manager');
1930
context.set(new AlwaysDayDiagnosticProvider(), ["alwaysday"]);
2031
context.set(new ClearDiagnosticProvider(), [ "clear" ]);
2132
context.set(new CloneDiagnosticProvider(), ["clone"]);
@@ -30,4 +41,15 @@ export function activate(context: DiagnosticsManager) {
3041
context.set(new FunctionCommandDiagnosticProvider(), [ "function" ]);
3142
context.set(new GamemodeDiagnosticProvider(), [ "gamemode" ]);
3243
context.set(new GameruleDiagnosticProvider(), [ "gamerule" ]);
44+
context.set(new GiveDiagnosticProvider(), [ "give" ]);
45+
context.set(new LocateDiagnosticProvider(), [ "locate" ]);
46+
context.set(new MeDiagnosticProvider(), [ "me" ]);
47+
context.set(new MobeventDiagnosticProvider(), [ "mobevent" ]);
48+
context.set(new KillDiagnosticProvider(), [ "kill" ]);
49+
context.set(new MsgDiagnosticProvider(), [ "msg" ]);
50+
51+
52+
53+
context.set(new WeatherDiagnosticProvider(), [ "weather" ]);
54+
context.set(new XpDiagnosticProvider(), [ "xp" ]);
3355
}

src/mcfunction/diagnostics/commands/cloneDiagnostics.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
1616
}
1717

1818
//end x y z
19-
out = Functions.provideDiagnosticsXYZ('clone <begin x y z>', out[0], lineIndex, collector, dm, document);
19+
out = Functions.provideDiagnosticsXYZ('clone', out[0], lineIndex, collector, dm, document);
2020

2121
if (out[1] == false){
2222
return;
2323
}
2424

2525
//destination x y z
26-
out = Functions.provideDiagnosticsXYZ('clone <begin x y z> <end: x y z>', out[0], lineIndex, collector, dm, document);
26+
out = Functions.provideDiagnosticsXYZ('clone', out[0], lineIndex, collector, dm, document);
2727

2828
if (out[1] == false){
2929
return;
@@ -46,7 +46,7 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
4646
return;
4747

4848
default:
49-
Errors.UnknownWords('clone <begin x y z> <end: x y z> <destination: x y z>', 'masked, replace, filtered', lineIndex, mode, collector);
49+
Errors.UnknownWords('masked, replace, filtered', lineIndex, mode, collector);
5050
return;
5151
}
5252
}
@@ -64,7 +64,7 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
6464
case 'move':
6565
return;
6666
default:
67-
Errors.UnknownWords('clone <begin x y z> <end: x y z> <destination: x y z> [mode]', 'normal, force, move', lineIndex, mode, collector);
67+
Errors.UnknownWords('normal, force, move', lineIndex, mode, collector);
6868
return;
6969
}
7070
}
@@ -73,7 +73,7 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
7373
branchfiltered(item: SyntaxItem, lineIndex: number, collector: vscode.Diagnostic[], dm: DiagnosticsManager, document: vscode.TextDocument) : void {
7474
var mode = item.Child;
7575
if (mode == undefined){
76-
Errors.Missing('clone mode', 'clone <begin x y z> <end: x y z> <destination: x y z> filtered', lineIndex, item, collector);
76+
Errors.Missing('clone mode', 'clone', lineIndex, item, collector);
7777
return;
7878
}
7979

@@ -83,15 +83,15 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
8383
case 'move':
8484
break;
8585
default:
86-
Errors.UnknownWords('clone <begin x y z> <end: x y z> <destination: x y z> [mode]', 'normal, force, move', lineIndex, mode, collector);
86+
Errors.UnknownWords('normal, force, move', lineIndex, mode, collector);
8787
return;
8888
}
8989

9090
var block = mode.Child;
9191

9292
//<tileName: Block>
9393
if (block == undefined) {
94-
Errors.Missing('block', 'clone <begin x y z> <end: x y z> <destination: x y z> filtered <clone mode>', lineIndex, mode, collector);
94+
Errors.Missing('block', 'clone', lineIndex, mode, collector);
9595
return;
9696
}
9797
dm.BlockDiagnoser?.provideDiagnostic(block, lineIndex, collector, dm, document);
@@ -100,7 +100,7 @@ export class CloneDiagnosticProvider implements DiagnosticProvider {
100100

101101
//<tileData: int>
102102
if (blockData == undefined) {
103-
Errors.Missing('integer', 'clone <begin x y z> <end: x y z> <destination: x y z> filtered <clone mode> <block>', lineIndex, block, collector);
103+
Errors.Missing('integer', 'clone', lineIndex, block, collector);
104104
return;
105105
}
106106
dm.IntegerDiagnoser?.provideDiagnostic(blockData, lineIndex, collector, dm, document);

src/mcfunction/diagnostics/commands/deopDiagnostics.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ export class DeopDiagnosticProvider implements DiagnosticProvider {
1010

1111
//<player: target>
1212
if (Child == undefined) {
13-
collector.push(new vscode.Diagnostic(
14-
new vscode.Range(lineIndex, item.Text.endindex + 1, lineIndex, item.Text.endindex + 2),
15-
"expecting a target/selector for the deop command"
16-
));
13+
Errors.Missing('target/selector', 'deop', lineIndex, item, collector);
1714
return;
1815
}
1916

src/mcfunction/diagnostics/commands/difficultyDiagnostics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class DifficultyDiagnosticProvider implements DiagnosticProvider {
2929
case '3':
3030
return;
3131
default:
32-
Errors.UnknownWords('difficulty', 'peaceful, easy, normal, hard, e, h, n, p, 0, 1, 2, 3', lineIndex, Difficulty, collector);
32+
Errors.UnknownWords('peaceful, easy, normal, hard, e, h, n, p, 0, 1, 2, 3', lineIndex, Difficulty, collector);
3333
}
3434
}
3535
}

src/mcfunction/diagnostics/commands/enchantDiagnostics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export class EnchantDiagnosticProvider implements DiagnosticProvider {
2020

2121
//<int|Enchant Name>
2222
if (Enchant == undefined) {
23-
Errors.Missing('enchant|int', 'enchant <target>', lineIndex, item, collector);
23+
Errors.Missing('enchant|int', 'enchant', lineIndex, item, collector);
2424
return;
2525
}
2626

src/mcfunction/diagnostics/commands/fillDiagnostics.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class FillDiagnosticProvider implements DiagnosticProvider {
1515
return;
1616

1717
//<to: x y z>
18-
Out = Functions.provideDiagnosticsXYZ('fill <from x y z>', Out[0], lineIndex, collector, dm, document);
18+
Out = Functions.provideDiagnosticsXYZ('fill', Out[0], lineIndex, collector, dm, document);
1919

2020
if (Out[1] == false)
2121
return;
@@ -24,7 +24,7 @@ export class FillDiagnosticProvider implements DiagnosticProvider {
2424

2525
//<tileName: Block>
2626
if (Block == undefined) {
27-
Errors.Missing('block', 'fill <from x y z> <to x y z>', lineIndex, Out[0], collector);
27+
Errors.Missing('block', 'fill', lineIndex, Out[0], collector);
2828
return;
2929
}
3030

@@ -54,7 +54,7 @@ export class FillDiagnosticProvider implements DiagnosticProvider {
5454
this.branchReplace(Mode, lineIndex, collector, dm, document);
5555
return;
5656
default:
57-
Errors.UnknownWords('fill <from x y z> <to x y z> <block> [data]', 'outline, hollow, destroy, keep, replace', lineIndex, Mode, collector);
57+
Errors.UnknownWords('outline, hollow, destroy, keep, replace', lineIndex, Mode, collector);
5858
return;
5959
}
6060
}

src/mcfunction/diagnostics/commands/gamemodeDiagnostics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class GamemodeDiagnosticProvider implements DiagnosticProvider {
2929
case 'survival':
3030
break;
3131
default:
32-
Errors.UnknownWords('gamemode', '0, 1, 2, s, d, c, a, adventure, creative, default, survival', lineIndex, Gamemode, collector);
32+
Errors.UnknownWords('0, 1, 2, s, d, c, a, adventure, creative, default, survival', lineIndex, Gamemode, collector);
3333
return;
3434
}
3535

src/mcfunction/diagnostics/commands/gameruleDiagnostics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export class GameruleDiagnosticProvider implements DiagnosticProvider {
6060

6161
return;
6262
default:
63-
Errors.UnknownWords('gamerule', 'see gamerule on the wiki', lineIndex, Gamerule, collector);
63+
Errors.UnknownWords('see gamerule on the wiki', lineIndex, Gamerule, collector);
6464
return;
6565
}
6666

0 commit comments

Comments
 (0)