Skip to content

Commit 3643713

Browse files
committed
syntax errors in LuaDoc are shown as Warning
1 parent d1eda84 commit 3643713

File tree

4 files changed

+35
-29
lines changed

4 files changed

+35
-29
lines changed

changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# changelog
22

3+
## 2.5.6
4+
* `CHG` diagnostic: now syntax errors in `LuaDoc` are shown as `Warning`
5+
36
## 2.5.5
47
`2021-12-16`
58
* `FIX` dose not work in VSCode

script/parser/luadoc.lua

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ local guide = require 'parser.guide'
44
local parser = require 'parser.newparser'
55

66
local TokenTypes, TokenStarts, TokenFinishs, TokenContents, TokenMarks
7-
local Ci, Offset, pushError, NextComment, Lines
7+
local Ci, Offset, pushWarning, NextComment, Lines
88
local parseType
99
local Parser = re.compile([[
1010
Main <- (Token / Sp)*
@@ -204,7 +204,7 @@ local function nextSymbolOrError(symbol)
204204
nextToken()
205205
return true
206206
end
207-
pushError {
207+
pushWarning {
208208
type = 'LUADOC_MISS_SYMBOL',
209209
start = getFinish(),
210210
finish = getFinish(),
@@ -229,7 +229,7 @@ local function parseIndexField(tp, parent)
229229
local indexTP, index = nextToken()
230230
if indexTP ~= 'integer'
231231
and indexTP ~= 'string' then
232-
pushError {
232+
pushWarning {
233233
type = 'LUADOC_INDEX_MUST_INT',
234234
start = getStart(),
235235
finish = getFinish(),
@@ -249,7 +249,7 @@ local function parseClass(parent)
249249
}
250250
result.class = parseName('doc.class.name', result)
251251
if not result.class then
252-
pushError {
252+
pushWarning {
253253
type = 'LUADOC_MISS_CLASS_NAME',
254254
start = getFinish(),
255255
finish = getFinish(),
@@ -268,7 +268,7 @@ local function parseClass(parent)
268268
while true do
269269
local extend = parseName('doc.extends.name', result)
270270
if not extend then
271-
pushError {
271+
pushWarning {
272272
type = 'LUADOC_MISS_CLASS_EXTENDS_NAME',
273273
start = getFinish(),
274274
finish = getFinish(),
@@ -371,7 +371,7 @@ local function parseTypeUnitFunction()
371371
arg.name = parseName('doc.type.name', arg)
372372
or parseDots('doc.type.name', arg)
373373
if not arg.name then
374-
pushError {
374+
pushWarning {
375375
type = 'LUADOC_MISS_ARG_NAME',
376376
start = getFinish(),
377377
finish = getFinish(),
@@ -443,7 +443,7 @@ local function parseTypeUnitLiteralTable()
443443
field.name = parseName('doc.field.name', field)
444444
or parseIndexField('doc.field.name', field)
445445
if not field.name then
446-
pushError {
446+
pushWarning {
447447
type = 'LUADOC_MISS_FIELD_NAME',
448448
start = getFinish(),
449449
finish = getFinish(),
@@ -549,7 +549,7 @@ local function parseResume(parent)
549549

550550
local tp = peekToken()
551551
if tp ~= 'string' then
552-
pushError {
552+
pushWarning {
553553
type = 'LUADOC_MISS_STRING',
554554
start = getFinish(),
555555
finish = getFinish(),
@@ -716,7 +716,7 @@ function parseType(parent)
716716
end
717717

718718
if #result.types == 0 and #result.enums == 0 and #result.resumes == 0 then
719-
pushError {
719+
pushWarning {
720720
type = 'LUADOC_MISS_TYPE_NAME',
721721
start = getFinish(),
722722
finish = getFinish(),
@@ -732,7 +732,7 @@ local function parseAlias()
732732
}
733733
result.alias = parseName('doc.alias.name', result)
734734
if not result.alias then
735-
pushError {
735+
pushWarning {
736736
type = 'LUADOC_MISS_ALIAS_NAME',
737737
start = getFinish(),
738738
finish = getFinish(),
@@ -742,7 +742,7 @@ local function parseAlias()
742742
result.start = getStart()
743743
result.extends = parseType(result)
744744
if not result.extends then
745-
pushError {
745+
pushWarning {
746746
type = 'LUADOC_MISS_ALIAS_EXTENDS',
747747
start = getFinish(),
748748
finish = getFinish(),
@@ -760,7 +760,7 @@ local function parseParam()
760760
result.param = parseName('doc.param.name', result)
761761
or parseDots('doc.param.name', result)
762762
if not result.param then
763-
pushError {
763+
pushWarning {
764764
type = 'LUADOC_MISS_PARAM_NAME',
765765
start = getFinish(),
766766
finish = getFinish(),
@@ -775,7 +775,7 @@ local function parseParam()
775775
result.finish = getFinish()
776776
result.extends = parseType(result)
777777
if not result.extends then
778-
pushError {
778+
pushWarning {
779779
type = 'LUADOC_MISS_PARAM_EXTENDS',
780780
start = getFinish(),
781781
finish = getFinish(),
@@ -838,7 +838,7 @@ local function parseField()
838838
result.field = parseName('doc.field.name', result)
839839
or parseIndexField('doc.field.name', result)
840840
if not result.field then
841-
pushError {
841+
pushWarning {
842842
type = 'LUADOC_MISS_FIELD_NAME',
843843
start = getFinish(),
844844
finish = getFinish(),
@@ -854,7 +854,7 @@ local function parseField()
854854
end
855855
result.extends = parseType(result)
856856
if not result.extends then
857-
pushError {
857+
pushWarning {
858858
type = 'LUADOC_MISS_FIELD_EXTENDS',
859859
start = getFinish(),
860860
finish = getFinish(),
@@ -877,7 +877,7 @@ local function parseGeneric()
877877
}
878878
object.generic = parseName('doc.generic.name', object)
879879
if not object.generic then
880-
pushError {
880+
pushWarning {
881881
type = 'LUADOC_MISS_GENERIC_NAME',
882882
start = getFinish(),
883883
finish = getFinish(),
@@ -909,7 +909,7 @@ local function parseVararg()
909909
}
910910
result.vararg = parseType(result)
911911
if not result.vararg then
912-
pushError {
912+
pushWarning {
913913
type = 'LUADOC_MISS_VARARG_TYPE',
914914
start = getFinish(),
915915
finish = getFinish(),
@@ -925,7 +925,7 @@ local function parseOverload()
925925
local tp, name = peekToken()
926926
if tp ~= 'name'
927927
or (name ~= 'fun' and name ~= 'async') then
928-
pushError {
928+
pushWarning {
929929
type = 'LUADOC_MISS_FUN_AFTER_OVERLOAD',
930930
start = getFinish(),
931931
finish = getFinish(),
@@ -970,7 +970,7 @@ local function parseVersion()
970970
while true do
971971
local tp, text = nextToken()
972972
if not tp then
973-
pushError {
973+
pushWarning {
974974
type = 'LUADOC_MISS_VERSION',
975975
start = getFinish(),
976976
finish = getFinish(),
@@ -993,7 +993,7 @@ local function parseVersion()
993993
tp, text = nextToken()
994994
end
995995
if tp ~= 'name' then
996-
pushError {
996+
pushWarning {
997997
type = 'LUADOC_MISS_VERSION',
998998
start = getStart(),
999999
finish = getFinish(),
@@ -1039,7 +1039,7 @@ local function parseDiagnostic()
10391039
}
10401040
local nextTP, mode = nextToken()
10411041
if nextTP ~= 'name' then
1042-
pushError {
1042+
pushWarning {
10431043
type = 'LUADOC_MISS_DIAG_MODE',
10441044
start = getFinish(),
10451045
finish = getFinish(),
@@ -1053,7 +1053,7 @@ local function parseDiagnostic()
10531053
and mode ~= 'disable-line'
10541054
and mode ~= 'disable'
10551055
and mode ~= 'enable' then
1056-
pushError {
1056+
pushWarning {
10571057
type = 'LUADOC_ERROR_DIAG_MODE',
10581058
start = result.start,
10591059
finish = result.finish,
@@ -1066,7 +1066,7 @@ local function parseDiagnostic()
10661066
while true do
10671067
local name = parseName('doc.diagnostic.name', result)
10681068
if not name then
1069-
pushError {
1069+
pushWarning {
10701070
type = 'LUADOC_MISS_DIAG_NAME',
10711071
start = getFinish(),
10721072
finish = getFinish(),
@@ -1100,7 +1100,7 @@ local function parseModule()
11001100
result.finish = getFinish()
11011101
result.smark = getMark()
11021102
else
1103-
pushError {
1103+
pushWarning {
11041104
type = 'LUADOC_MISS_MODULE_NAME',
11051105
start = getFinish(),
11061106
finish = getFinish(),
@@ -1131,7 +1131,7 @@ local function convertTokens()
11311131
return
11321132
end
11331133
if tp ~= 'name' then
1134-
pushError {
1134+
pushWarning {
11351135
type = 'LUADOC_MISS_CATE_NAME',
11361136
start = getStart(),
11371137
finish = getFinish(),
@@ -1428,8 +1428,11 @@ return function (state)
14281428
groups = {},
14291429
}
14301430

1431-
pushError = state.pushError
1432-
Lines = state.lines
1431+
pushWarning = function (err)
1432+
err.level = err.level or 'Warning'
1433+
state.pushError(err)
1434+
end
1435+
Lines = state.lines
14331436

14341437
local ci = 1
14351438
NextComment = function (offset, peek)

script/parser/newparser.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3714,7 +3714,7 @@ local function initState(lua, version, options)
37143714
return
37153715
end
37163716
end
3717-
err.level = err.level or 'error'
3717+
err.level = err.level or 'Error'
37183718
errs[#errs+1] = err
37193719
return err
37203720
end

script/provider/diagnostic.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ local function buildSyntaxError(uri, err)
5858
return {
5959
code = err.type:lower():gsub('_', '-'),
6060
range = converter.packRange(uri, err.start, err.finish),
61-
severity = define.DiagnosticSeverity.Error,
61+
severity = define.DiagnosticSeverity[err.level],
6262
source = lang.script.DIAG_SYNTAX_CHECK,
6363
message = message,
6464
relatedInformation = relatedInformation,

0 commit comments

Comments
 (0)