brighterscript 0.66.0-alpha.4 → 0.66.0-alpha.5

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 (182) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/DiagnosticMessages.d.ts +6 -1
  3. package/dist/DiagnosticMessages.js +5 -0
  4. package/dist/DiagnosticMessages.js.map +1 -1
  5. package/dist/LanguageServer.d.ts +1 -0
  6. package/dist/LanguageServer.js +8 -5
  7. package/dist/LanguageServer.js.map +1 -1
  8. package/dist/Program.d.ts +3 -8
  9. package/dist/Program.js +3 -51
  10. package/dist/Program.js.map +1 -1
  11. package/dist/ProgramBuilder.js +14 -2
  12. package/dist/ProgramBuilder.js.map +1 -1
  13. package/dist/Scope.d.ts +1 -13
  14. package/dist/Scope.js +10 -65
  15. package/dist/Scope.js.map +1 -1
  16. package/dist/SymbolTable.d.ts +12 -10
  17. package/dist/SymbolTable.js +33 -24
  18. package/dist/SymbolTable.js.map +1 -1
  19. package/dist/astUtils/creators.js +5 -3
  20. package/dist/astUtils/creators.js.map +1 -1
  21. package/dist/astUtils/reflection.d.ts +3 -1
  22. package/dist/astUtils/reflection.js +12 -1
  23. package/dist/astUtils/reflection.js.map +1 -1
  24. package/dist/astUtils/reflection.spec.js +2 -1
  25. package/dist/astUtils/reflection.spec.js.map +1 -1
  26. package/dist/bscPlugin/CallExpressionInfo.d.ts +3 -3
  27. package/dist/bscPlugin/CallExpressionInfo.js.map +1 -1
  28. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +39 -1
  29. package/dist/bscPlugin/completions/CompletionsProcessor.js +305 -3
  30. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  31. package/dist/bscPlugin/completions/CompletionsProcessor.spec.d.ts +1 -0
  32. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +1369 -0
  33. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -0
  34. package/dist/bscPlugin/hover/HoverProcessor.d.ts +9 -4
  35. package/dist/bscPlugin/hover/HoverProcessor.js +64 -67
  36. package/dist/bscPlugin/hover/HoverProcessor.js.map +1 -1
  37. package/dist/bscPlugin/hover/HoverProcessor.spec.js +107 -4
  38. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  39. package/dist/bscPlugin/validation/BrsFileValidator.js +18 -15
  40. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  41. package/dist/bscPlugin/validation/ScopeValidator.d.ts +10 -1
  42. package/dist/bscPlugin/validation/ScopeValidator.js +85 -42
  43. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  44. package/dist/bscPlugin/validation/ScopeValidator.spec.js +276 -0
  45. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  46. package/dist/diagnosticUtils.d.ts +7 -2
  47. package/dist/diagnosticUtils.js +43 -15
  48. package/dist/diagnosticUtils.js.map +1 -1
  49. package/dist/files/BrsFile.Class.spec.js +10 -8
  50. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  51. package/dist/files/BrsFile.d.ts +3 -20
  52. package/dist/files/BrsFile.js +7 -355
  53. package/dist/files/BrsFile.js.map +1 -1
  54. package/dist/files/BrsFile.spec.js +2 -248
  55. package/dist/files/BrsFile.spec.js.map +1 -1
  56. package/dist/files/XmlFile.d.ts +1 -6
  57. package/dist/files/XmlFile.js +0 -13
  58. package/dist/files/XmlFile.js.map +1 -1
  59. package/dist/files/XmlFile.spec.js +0 -36
  60. package/dist/files/XmlFile.spec.js.map +1 -1
  61. package/dist/interfaces.d.ts +8 -1
  62. package/dist/interfaces.js.map +1 -1
  63. package/dist/lexer/Lexer.d.ts +12 -0
  64. package/dist/lexer/Lexer.js +27 -2
  65. package/dist/lexer/Lexer.js.map +1 -1
  66. package/dist/lexer/Lexer.spec.js +40 -0
  67. package/dist/lexer/Lexer.spec.js.map +1 -1
  68. package/dist/lexer/Token.d.ts +4 -0
  69. package/dist/lexer/Token.js.map +1 -1
  70. package/dist/lexer/TokenKind.d.ts +4 -0
  71. package/dist/lexer/TokenKind.js +10 -1
  72. package/dist/lexer/TokenKind.js.map +1 -1
  73. package/dist/parser/AstNode.d.ts +8 -1
  74. package/dist/parser/AstNode.js +16 -0
  75. package/dist/parser/AstNode.js.map +1 -1
  76. package/dist/parser/Expression.d.ts +16 -1
  77. package/dist/parser/Expression.js +43 -1
  78. package/dist/parser/Expression.js.map +1 -1
  79. package/dist/parser/Parser.d.ts +7 -0
  80. package/dist/parser/Parser.js +46 -6
  81. package/dist/parser/Parser.js.map +1 -1
  82. package/dist/parser/Parser.spec.js +327 -3
  83. package/dist/parser/Parser.spec.js.map +1 -1
  84. package/dist/parser/SGTypes.d.ts +1 -1
  85. package/dist/parser/Statement.d.ts +16 -3
  86. package/dist/parser/Statement.js +53 -15
  87. package/dist/parser/Statement.js.map +1 -1
  88. package/dist/parser/tests/Parser.spec.js +2 -1
  89. package/dist/parser/tests/Parser.spec.js.map +1 -1
  90. package/dist/parser/tests/controlFlow/For.spec.js +16 -8
  91. package/dist/parser/tests/controlFlow/For.spec.js.map +1 -1
  92. package/dist/parser/tests/controlFlow/ForEach.spec.js +12 -6
  93. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +1 -1
  94. package/dist/parser/tests/controlFlow/While.spec.js +8 -4
  95. package/dist/parser/tests/controlFlow/While.spec.js.map +1 -1
  96. package/dist/parser/tests/expression/Call.spec.js +4 -4
  97. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  98. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +13 -13
  99. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +1 -1
  100. package/dist/parser/tests/statement/ConstStatement.spec.js +0 -33
  101. package/dist/parser/tests/statement/ConstStatement.spec.js.map +1 -1
  102. package/dist/parser/tests/statement/Enum.spec.js +1 -257
  103. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  104. package/dist/parser/tests/statement/PrintStatement.spec.js +6 -3
  105. package/dist/parser/tests/statement/PrintStatement.spec.js.map +1 -1
  106. package/dist/parser/tests/statement/ReturnStatement.spec.js +5 -3
  107. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +1 -1
  108. package/dist/parser/tests/statement/Set.spec.js +26 -13
  109. package/dist/parser/tests/statement/Set.spec.js.map +1 -1
  110. package/dist/roku-types/data.json +158 -137
  111. package/dist/roku-types/index.d.ts +3 -38
  112. package/dist/types/ArrayType.d.ts +3 -1
  113. package/dist/types/ArrayType.js +42 -6
  114. package/dist/types/ArrayType.js.map +1 -1
  115. package/dist/types/ArrayType.spec.js +21 -2
  116. package/dist/types/ArrayType.spec.js.map +1 -1
  117. package/dist/types/BooleanType.d.ts +0 -3
  118. package/dist/types/BooleanType.js +5 -6
  119. package/dist/types/BooleanType.js.map +1 -1
  120. package/dist/types/BscType.d.ts +6 -2
  121. package/dist/types/BscType.js +20 -4
  122. package/dist/types/BscType.js.map +1 -1
  123. package/dist/types/BuiltInInterfaceAdder.d.ts +15 -0
  124. package/dist/types/BuiltInInterfaceAdder.js +93 -0
  125. package/dist/types/BuiltInInterfaceAdder.js.map +1 -0
  126. package/dist/types/BuiltInInterfaceAdder.spec.d.ts +1 -0
  127. package/dist/types/BuiltInInterfaceAdder.spec.js +109 -0
  128. package/dist/types/BuiltInInterfaceAdder.spec.js.map +1 -0
  129. package/dist/types/ClassType.d.ts +4 -0
  130. package/dist/types/ClassType.js +25 -1
  131. package/dist/types/ClassType.js.map +1 -1
  132. package/dist/types/DoubleType.d.ts +1 -4
  133. package/dist/types/DoubleType.js +5 -6
  134. package/dist/types/DoubleType.js.map +1 -1
  135. package/dist/types/DynamicType.js +2 -0
  136. package/dist/types/DynamicType.js.map +1 -1
  137. package/dist/types/EnumType.d.ts +1 -3
  138. package/dist/types/EnumType.js +6 -5
  139. package/dist/types/EnumType.js.map +1 -1
  140. package/dist/types/FloatType.d.ts +1 -4
  141. package/dist/types/FloatType.js +5 -6
  142. package/dist/types/FloatType.js.map +1 -1
  143. package/dist/types/FunctionType.js +5 -1
  144. package/dist/types/FunctionType.js.map +1 -1
  145. package/dist/types/IntegerType.d.ts +1 -4
  146. package/dist/types/IntegerType.js +5 -6
  147. package/dist/types/IntegerType.js.map +1 -1
  148. package/dist/types/InterfaceType.js +2 -1
  149. package/dist/types/InterfaceType.js.map +1 -1
  150. package/dist/types/InvalidType.d.ts +1 -1
  151. package/dist/types/InvalidType.js +5 -1
  152. package/dist/types/InvalidType.js.map +1 -1
  153. package/dist/types/LongIntegerType.d.ts +1 -4
  154. package/dist/types/LongIntegerType.js +5 -6
  155. package/dist/types/LongIntegerType.js.map +1 -1
  156. package/dist/types/ObjectType.js +2 -0
  157. package/dist/types/ObjectType.js.map +1 -1
  158. package/dist/types/ReferenceType.d.ts +12 -0
  159. package/dist/types/ReferenceType.js +69 -12
  160. package/dist/types/ReferenceType.js.map +1 -1
  161. package/dist/types/ReferenceType.spec.js +15 -0
  162. package/dist/types/ReferenceType.spec.js.map +1 -1
  163. package/dist/types/StringType.d.ts +1 -4
  164. package/dist/types/StringType.js +4 -5
  165. package/dist/types/StringType.js.map +1 -1
  166. package/dist/types/TypedFunctionType.js +9 -2
  167. package/dist/types/TypedFunctionType.js.map +1 -1
  168. package/dist/types/UnionType.d.ts +2 -0
  169. package/dist/types/UnionType.js +22 -1
  170. package/dist/types/UnionType.js.map +1 -1
  171. package/dist/types/UnionType.spec.js +43 -17
  172. package/dist/types/UnionType.spec.js.map +1 -1
  173. package/dist/types/VoidType.d.ts +1 -1
  174. package/dist/types/VoidType.js +5 -1
  175. package/dist/types/VoidType.js.map +1 -1
  176. package/dist/types/helpers.d.ts +1 -0
  177. package/dist/types/helpers.js +18 -3
  178. package/dist/types/helpers.js.map +1 -1
  179. package/dist/util.d.ts +10 -1
  180. package/dist/util.js +77 -1
  181. package/dist/util.js.map +1 -1
  182. package/package.json +1 -1
@@ -697,6 +697,181 @@ describe('ScopeValidator', () => {
697
697
  //should have no errors
698
698
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
699
699
  });
700
+ it('allows calling future function and save to same variable', () => {
701
+ program.setFile('source/util.brs', `
702
+ function getSomeInt() as integer
703
+ numVal = getUntypedNum()
704
+ numVal = cInt(numVal)
705
+ return numVal
706
+ end function
707
+
708
+ function getUntypedNum()
709
+ return 1
710
+ end function
711
+ `);
712
+ program.validate();
713
+ //should have no errors
714
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
715
+ });
716
+ it('allows union types of all compatible types as arg', () => {
717
+ program.setFile('source/util.bs', `
718
+ sub printIntNum(num as float or double or integer)
719
+ print cInt(num)
720
+ end sub
721
+ `);
722
+ program.validate();
723
+ //should have no errors
724
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
725
+ });
726
+ it('allows function calls of built-in members of primitives', () => {
727
+ program.setFile('source/util.brs', `
728
+ sub doSomething()
729
+ myStr = "Hello World"
730
+ myStr = myStr.replace("World", "You")
731
+ print myStr
732
+ end sub
733
+ `);
734
+ program.validate();
735
+ //should have no errors
736
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
737
+ });
738
+ it('validates union types of all compatible types as arg - when some do not work', () => {
739
+ program.setFile('source/util.bs', `
740
+ sub printIntNum(maybeNum as float or string)
741
+ print cInt(maybeNum)
742
+ end sub
743
+ `);
744
+ program.validate();
745
+ //should have no errors
746
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
747
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float or string', 'float').message
748
+ ]);
749
+ });
750
+ it('validates function calls of built-in members of primitives', () => {
751
+ program.setFile('source/util.brs', `
752
+ sub doSomething()
753
+ myStr = "Hello World"
754
+ notAString = 3.14
755
+ myStr = myStr.replace("World", notAString)
756
+ print myStr
757
+ end sub
758
+ `);
759
+ program.validate();
760
+ //should have error - 2nd param should be a string, not a float
761
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
762
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
763
+ ]);
764
+ });
765
+ it('validates method calls of classes', () => {
766
+ program.setFile('source/util.bs', `
767
+ class Klass
768
+ sub test(input as string)
769
+ end sub
770
+ end class
771
+
772
+ sub doSomething()
773
+ k = new Klass()
774
+ k.test(3.14)
775
+ end sub
776
+ `);
777
+ program.validate();
778
+ //should have error - param should be a string, not a float
779
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
780
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
781
+ ]);
782
+ });
783
+ it('validates inside method calls of classes', () => {
784
+ program.setFile('source/util.bs', `
785
+ class Klass
786
+ sub test(input as string)
787
+ end sub
788
+
789
+ sub otherTest()
790
+ m.test(3.14)
791
+ end sub
792
+ end class
793
+ `);
794
+ program.validate();
795
+ //should have error - param should be a string, not a float
796
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
797
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
798
+ ]);
799
+ });
800
+ it('validates calls of a constructor', () => {
801
+ program.setFile('source/util.bs', `
802
+ class Klass
803
+ sub new(name as string)
804
+ end sub
805
+ end class
806
+
807
+ sub createKlass()
808
+ k = new Klass(3.14)
809
+ end sub
810
+ `);
811
+ program.validate();
812
+ //should have error - param should be a string, not a float
813
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
814
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
815
+ ]);
816
+ });
817
+ it('validates super calls in a constructor', () => {
818
+ program.setFile('source/util.bs', `
819
+ class Klass
820
+ sub new(name as string)
821
+ end sub
822
+ end class
823
+
824
+ class SubKlass extends Klass
825
+ sub new()
826
+ super(3.14)
827
+ end sub
828
+ end class
829
+ `);
830
+ program.validate();
831
+ //should have error - param should be a string, not a float
832
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
833
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
834
+ ]);
835
+ });
836
+ it('validates super calls in a class methods', () => {
837
+ program.setFile('source/util.bs', `
838
+ class Klass
839
+ sub test(name as string)
840
+ end sub
841
+ end class
842
+
843
+ class SubKlass extends Klass
844
+ sub test2()
845
+ super.test(3.14)
846
+ end sub
847
+ end class
848
+ `);
849
+ program.validate();
850
+ //should have error - param should be a string, not a float
851
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
852
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('float', 'string').message
853
+ ]);
854
+ });
855
+ it('validates a function passed as an arg', () => {
856
+ program.setFile('source/util.bs', `
857
+ sub foo()
858
+ getPi = function()
859
+ return 3.14
860
+ end function
861
+ bar(getPi)
862
+ end sub
863
+
864
+
865
+ sub bar(num as integer)
866
+ print num
867
+ end sub
868
+ `);
869
+ program.validate();
870
+ //should have error - param should be a string, not a float
871
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
872
+ DiagnosticMessages_1.DiagnosticMessages.argumentTypeMismatch('function () as dynamic', 'integer').message
873
+ ]);
874
+ });
700
875
  });
701
876
  describe('cannotFindName', () => {
702
877
  it('finds variables from assignments from member functions of primitive types', () => {
@@ -710,6 +885,107 @@ describe('ScopeValidator', () => {
710
885
  //should have no errors
711
886
  (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
712
887
  });
888
+ it('validates when lhs of compound assignment does not exist', () => {
889
+ program.setFile('source/util.brs', `
890
+ sub main()
891
+ expected += chr(10) + " version=""2.0"""
892
+ end sub
893
+ `);
894
+ program.validate();
895
+ //should have error - cannot find "expected"
896
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
897
+ DiagnosticMessages_1.DiagnosticMessages.cannotFindName('expected').message
898
+ ]);
899
+ });
900
+ });
901
+ describe('returnTypeMismatch', () => {
902
+ it('finds when a function returns a type that is not what was declared', () => {
903
+ program.setFile('source/util.bs', `
904
+ function getPi() as float
905
+ return "apple" ' get it?
906
+ end function
907
+ `);
908
+ program.validate();
909
+ //should have error - return value should be a float, not a string
910
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
911
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('string', 'float').message
912
+ ]);
913
+ });
914
+ it('finds all return statements that do not match', () => {
915
+ program.setFile('source/util.bs', `
916
+ function getPi(kind as integer) as float
917
+ if kind = 1
918
+ return "apple"
919
+ else if kind = 2
920
+ return false
921
+ else if kind = 3
922
+ return new Pie("lemon")
923
+ end if
924
+ return 3.14
925
+ end function
926
+
927
+ class Pie
928
+ kind as string
929
+ sub new(kind as string)
930
+ m.kind = kind
931
+ end sub
932
+ end class
933
+ `);
934
+ program.validate();
935
+ //should have error - return value should be a float, not whatever else
936
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
937
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('string', 'float').message,
938
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('boolean', 'float').message,
939
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('Pie', 'float').message
940
+ ]);
941
+ });
942
+ it('allows returning compatible types', () => {
943
+ program.setFile('source/util.bs', `
944
+ function getPi() as float
945
+ return 3 ' integers are compatible with floats
946
+ end function
947
+
948
+ function getPie() as Pie
949
+ return new Tart("lemon") ' Tart extends Pie
950
+ end function
951
+
952
+ class Pie
953
+ kind as string
954
+ sub new(kind as string)
955
+ m.kind = kind
956
+ end sub
957
+ end class
958
+
959
+ class Tart extends Pie
960
+ size = "small"
961
+ end class
962
+ `);
963
+ program.validate();
964
+ //should have no errors
965
+ (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
966
+ });
967
+ it('detects return types on void functions (subs)', () => {
968
+ program.setFile('source/util.bs', `
969
+ sub sayHello(name as string)
970
+ return "hello " + name ' return should be void in subs
971
+ end sub
972
+ `);
973
+ program.validate();
974
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
975
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('string', 'void').message
976
+ ]);
977
+ });
978
+ it('detects return types on void functions', () => {
979
+ program.setFile('source/util.bs', `
980
+ function sayHello(name as string) as void
981
+ return "hello " + name ' return should be void in subs
982
+ end function
983
+ `);
984
+ program.validate();
985
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [
986
+ DiagnosticMessages_1.DiagnosticMessages.returnTypeMismatch('string', 'void').message
987
+ ]);
988
+ });
713
989
  });
714
990
  });
715
991
  //# sourceMappingURL=ScopeValidator.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeValidator.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScopeValidator.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/ScopeValidator.spec.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Chalk } from 'chalk';
2
2
  import type { BsConfig } from './BsConfig';
3
3
  import { DiagnosticSeverity } from 'vscode-languageserver';
4
4
  import type { BsDiagnostic } from '.';
5
+ import type { Range } from 'vscode-languageserver';
5
6
  /**
6
7
  * Prepare print diagnostic formatting options
7
8
  */
@@ -16,9 +17,13 @@ export declare function getPrintDiagnosticOptions(options: BsConfig): {
16
17
  /**
17
18
  * Format output of one diagnostic
18
19
  */
19
- export declare function printDiagnostic(options: ReturnType<typeof getPrintDiagnosticOptions>, severity: DiagnosticSeverity, filePath: string, lines: string[], diagnostic: BsDiagnostic): void;
20
+ export declare function printDiagnostic(options: ReturnType<typeof getPrintDiagnosticOptions>, severity: DiagnosticSeverity, filePath: string, lines: string[], diagnostic: BsDiagnostic, relatedInformation?: Array<{
21
+ range: Range;
22
+ filePath: string;
23
+ message: string;
24
+ }>): void;
20
25
  export declare function getDiagnosticLine(diagnostic: BsDiagnostic, diagnosticLine: string, colorFunction: Chalk): string;
21
26
  /**
22
27
  * Given a diagnostic, compute the range for the squiggly
23
28
  */
24
- export declare function getDiagnosticSquigglyText(diagnostic: BsDiagnostic, line: string): string;
29
+ export declare function getDiagnosticSquigglyText(line: string, startCharacter: number, endCharacter: number): string;
@@ -44,8 +44,8 @@ exports.getPrintDiagnosticOptions = getPrintDiagnosticOptions;
44
44
  /**
45
45
  * Format output of one diagnostic
46
46
  */
47
- function printDiagnostic(options, severity, filePath, lines, diagnostic) {
48
- var _a, _b, _c, _d;
47
+ function printDiagnostic(options, severity, filePath, lines, diagnostic, relatedInformation) {
48
+ var _a, _b, _c, _d, _e;
49
49
  let { includeDiagnostic, severityTextMap, typeColor } = options;
50
50
  if (!includeDiagnostic[severity]) {
51
51
  return;
@@ -68,6 +68,26 @@ function printDiagnostic(options, severity, filePath, lines, diagnostic) {
68
68
  // default to an empty string so it doesn't crash the error printing below
69
69
  let diagnosticLine = (_d = lines[(_c = (_b = (_a = diagnostic.range) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.line) !== null && _c !== void 0 ? _c : -1]) !== null && _d !== void 0 ? _d : '';
70
70
  console.log(getDiagnosticLine(diagnostic, diagnosticLine, typeColor[severity]));
71
+ //print related information if present (only first few rows)
72
+ const relatedInfoList = relatedInformation !== null && relatedInformation !== void 0 ? relatedInformation : [];
73
+ let indent = ' ';
74
+ for (let i = 0; i < relatedInfoList.length; i++) {
75
+ let relatedInfo = relatedInfoList[i];
76
+ //only show the first 5 relatedInfo links
77
+ if (i < 5) {
78
+ console.log('');
79
+ console.log(indent, chalk_1.default.cyan((_e = relatedInfo.filePath) !== null && _e !== void 0 ? _e : '<unknown file>') +
80
+ ':' +
81
+ chalk_1.default.yellow(relatedInfo.range
82
+ ? (relatedInfo.range.start.line + 1) + ':' + (relatedInfo.range.start.character + 1)
83
+ : 'line?:col?'));
84
+ console.log(indent, relatedInfo.message);
85
+ }
86
+ else {
87
+ console.log('\n', indent, `...and ${relatedInfoList.length - i + 1} more`);
88
+ break;
89
+ }
90
+ }
71
91
  console.log('');
72
92
  }
73
93
  exports.printDiagnostic = printDiagnostic;
@@ -76,10 +96,18 @@ function getDiagnosticLine(diagnostic, diagnosticLine, colorFunction) {
76
96
  //only print the line information if we have some
77
97
  if (diagnostic.range && diagnosticLine) {
78
98
  const lineNumberText = chalk_1.default.bgWhite(' ' + chalk_1.default.black((diagnostic.range.start.line + 1).toString()) + ' ') + ' ';
79
- const blankLineNumberText = chalk_1.default.bgWhite(' ' + chalk_1.default.white('_'.repeat((diagnostic.range.start.line + 1).toString().length)) + ' ') + ' ';
80
- const squigglyText = getDiagnosticSquigglyText(diagnostic, diagnosticLine);
99
+ const blankLineNumberText = chalk_1.default.bgWhite(' ' + chalk_1.default.white(' '.repeat((diagnostic.range.start.line + 1).toString().length)) + ' ') + ' ';
100
+ //remove tabs in favor of spaces to make diagnostic printing more consistent
101
+ let leadingText = diagnosticLine.slice(0, diagnostic.range.start.character);
102
+ let leadingTextNormalized = leadingText.replace(/\t/g, ' ');
103
+ let actualText = diagnosticLine.slice(diagnostic.range.start.character, diagnostic.range.end.character);
104
+ let actualTextNormalized = actualText.replace(/\t/g, ' ');
105
+ let startIndex = leadingTextNormalized.length;
106
+ let endIndex = leadingTextNormalized.length + actualTextNormalized.length;
107
+ let diagnosticLineNormalized = diagnosticLine.replace(/\t/g, ' ');
108
+ const squigglyText = getDiagnosticSquigglyText(diagnosticLineNormalized, startIndex, endIndex);
81
109
  result +=
82
- lineNumberText + diagnosticLine + '\n' +
110
+ lineNumberText + diagnosticLineNormalized + '\n' +
83
111
  blankLineNumberText + colorFunction(squigglyText);
84
112
  }
85
113
  return result;
@@ -88,36 +116,36 @@ exports.getDiagnosticLine = getDiagnosticLine;
88
116
  /**
89
117
  * Given a diagnostic, compute the range for the squiggly
90
118
  */
91
- function getDiagnosticSquigglyText(diagnostic, line) {
92
- var _a, _b;
119
+ function getDiagnosticSquigglyText(line, startCharacter, endCharacter) {
120
+ var _a;
93
121
  let squiggle;
94
122
  //fill the entire line
95
123
  if (
96
124
  //there is no range
97
- !diagnostic.range ||
125
+ typeof startCharacter !== 'number' || typeof endCharacter !== 'number' ||
98
126
  //there is no line
99
127
  !line ||
100
128
  //both positions point to same location
101
- diagnostic.range.start.character === diagnostic.range.end.character ||
129
+ startCharacter === endCharacter ||
102
130
  //the diagnostic starts after the end of the line
103
- diagnostic.range.start.character >= line.length) {
131
+ startCharacter >= line.length) {
104
132
  squiggle = ''.padStart((_a = line === null || line === void 0 ? void 0 : line.length) !== null && _a !== void 0 ? _a : 0, '~');
105
133
  }
106
134
  else {
107
- let endIndex = Math.max((_b = diagnostic.range) === null || _b === void 0 ? void 0 : _b.end.character, line.length);
135
+ let endIndex = Math.max(endCharacter, line.length);
108
136
  endIndex = endIndex > 0 ? endIndex : 0;
109
137
  if ((line === null || line === void 0 ? void 0 : line.length) < endIndex) {
110
138
  endIndex = line.length;
111
139
  }
112
- let leadingWhitespaceLength = diagnostic.range.start.character;
140
+ let leadingWhitespaceLength = startCharacter;
113
141
  let squiggleLength;
114
- if (diagnostic.range.end.character === Number.MAX_VALUE) {
142
+ if (endCharacter === Number.MAX_VALUE) {
115
143
  squiggleLength = line.length - leadingWhitespaceLength;
116
144
  }
117
145
  else {
118
- squiggleLength = diagnostic.range.end.character - diagnostic.range.start.character;
146
+ squiggleLength = endCharacter - startCharacter;
119
147
  }
120
- let trailingWhitespaceLength = endIndex - diagnostic.range.end.character;
148
+ let trailingWhitespaceLength = endIndex - endCharacter;
121
149
  //opening whitespace
122
150
  squiggle =
123
151
  ''.padStart(leadingWhitespaceLength, ' ') +
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticUtils.js","sourceRoot":"","sources":["../src/diagnosticUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticUtils.js","sourceRoot":"","sources":["../src/diagnosticUtils.ts"],"names":[],"mappings":"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"}
@@ -143,7 +143,7 @@ describe('BrsFile BrighterScript classes', () => {
143
143
  end sub
144
144
  end class
145
145
  class Duck extends Bird
146
- sub new()
146
+ sub new(name)
147
147
  thing = { m: "m"}
148
148
  print thing.m
149
149
  name = "Donald" + "Duck"
@@ -157,18 +157,20 @@ describe('BrsFile BrighterScript classes', () => {
157
157
  it('allows non-`m` expressions and statements before the super call', () => {
158
158
  program.setFile('source/main.bs', `
159
159
  class Bird
160
- sub new(name)
160
+ name as string
161
+ sub new(name as string)
162
+ m.name = name
161
163
  end sub
162
164
  end class
163
165
  class Duck extends Bird
164
166
  sub new()
165
167
  m.name = m.name + "Duck"
166
- super()
168
+ super("Flappy")
167
169
  end sub
168
170
  end class
169
171
  `);
170
172
  program.validate();
171
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classConstructorIllegalUseOfMBeforeSuperCall()), { range: vscode_languageserver_1.Range.create(7, 24, 7, 25) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classConstructorIllegalUseOfMBeforeSuperCall()), { range: vscode_languageserver_1.Range.create(7, 33, 7, 34) })]);
173
+ (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classConstructorIllegalUseOfMBeforeSuperCall()), { range: vscode_languageserver_1.Range.create(9, 24, 9, 25) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.classConstructorIllegalUseOfMBeforeSuperCall()), { range: vscode_languageserver_1.Range.create(9, 33, 9, 34) })]);
172
174
  });
173
175
  });
174
176
  describe('transpile', () => {
@@ -192,14 +194,14 @@ describe('BrsFile BrighterScript classes', () => {
192
194
  class Animal
193
195
  species1 = "Animal"
194
196
  sub new()
195
- print "From Animal: " + m.species
197
+ print "From Animal: " + m.species1
196
198
  end sub
197
199
  end class
198
200
  class Duck extends Animal
199
201
  species2 = "Duck"
200
202
  sub new()
201
203
  super()
202
- print "From Duck: " + m.species
204
+ print "From Duck: " + m.species2
203
205
  end sub
204
206
  end class
205
207
  `, `
@@ -207,7 +209,7 @@ describe('BrsFile BrighterScript classes', () => {
207
209
  instance = {}
208
210
  instance.new = sub()
209
211
  m.species1 = "Animal"
210
- print "From Animal: " + m.species
212
+ print "From Animal: " + m.species1
211
213
  end sub
212
214
  return instance
213
215
  end function
@@ -222,7 +224,7 @@ describe('BrsFile BrighterScript classes', () => {
222
224
  instance.new = sub()
223
225
  m.super0_new()
224
226
  m.species2 = "Duck"
225
- print "From Duck: " + m.species
227
+ print "From Duck: " + m.species2
226
228
  end sub
227
229
  return instance
228
230
  end function