Skip to content

Commit 15cb3b7

Browse files
authoredOct 5, 2021
Idris: Fixed import statements (#3115)
1 parent d359eea commit 15cb3b7

File tree

4 files changed

+105
-15
lines changed

4 files changed

+105
-15
lines changed
 

‎components/prism-idris.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,17 @@ Prism.languages.idris = Prism.languages.extend('haskell', {
33
pattern: /(?:(?:--|\|\|\|).*$|\{-[\s\S]*?-\})/m,
44
},
55
'keyword': /\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\b/,
6-
'import-statement': {
7-
pattern: /(^\s*)import\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,
8-
lookbehind: true
9-
},
106
'builtin': undefined
117
});
128

9+
Prism.languages.insertBefore('idris', 'keyword', {
10+
'import-statement': {
11+
pattern: /(^\s*import\s+)(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*/m,
12+
lookbehind: true,
13+
inside: {
14+
'punctuation': /\./
15+
}
16+
}
17+
});
18+
1319
Prism.languages.idr = Prism.languages.idris;

‎components/prism-idris.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎tests/languages/idris/import_statement_feature.test

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
import Foo
2+
import Maths.NumOps
23

34
----------------------------------------------------
45

56
[
67
["keyword", "import"],
7-
["constant", ["Foo"]]
8+
["import-statement", ["Foo"]],
9+
10+
["keyword", "import"],
11+
["import-statement", [
12+
"Maths",
13+
["punctuation", "."],
14+
"NumOps"
15+
]]
816
]
917

1018
----------------------------------------------------
+85-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,93 @@
1-
case data do else if implementation
2-
in infixl infixr interface let
3-
module of then where
1+
Type
2+
case
3+
class
4+
codata
5+
constructor
6+
corecord
7+
data
8+
do
9+
dsl
10+
else
11+
export
12+
if
13+
implementation
14+
implicit
15+
import
16+
impossible
17+
in
18+
infix
19+
infixl
20+
infixr
21+
instance
22+
interface
23+
let
24+
module
25+
mutual
26+
namespace
27+
of
28+
parameters
29+
partial
30+
postulate
31+
private
32+
proof
33+
public
34+
quoteGoal
35+
record
36+
rewrite
37+
syntax
38+
then
39+
total
40+
using
41+
where
42+
with
443

544
----------------------------------------------------
645

746
[
8-
["keyword", "case"], ["keyword", "data"], ["keyword", "do"],
9-
["keyword", "else"], ["keyword", "if"], ["keyword", "implementation"],
10-
["keyword", "in"], ["keyword", "infixl"], ["keyword", "infixr"],
11-
["keyword", "interface"], ["keyword", "let"], ["keyword", "module"],
12-
["keyword", "of"], ["keyword", "then"], ["keyword", "where"]
47+
["keyword", "Type"],
48+
["keyword", "case"],
49+
["keyword", "class"],
50+
["keyword", "codata"],
51+
["keyword", "constructor"],
52+
["keyword", "corecord"],
53+
["keyword", "data"],
54+
["keyword", "do"],
55+
["keyword", "dsl"],
56+
["keyword", "else"],
57+
["keyword", "export"],
58+
["keyword", "if"],
59+
["keyword", "implementation"],
60+
["keyword", "implicit"],
61+
["keyword", "import"],
62+
["keyword", "impossible"],
63+
["keyword", "in"],
64+
["keyword", "infix"],
65+
["keyword", "infixl"],
66+
["keyword", "infixr"],
67+
["keyword", "instance"],
68+
["keyword", "interface"],
69+
["keyword", "let"],
70+
["keyword", "module"],
71+
["keyword", "mutual"],
72+
["keyword", "namespace"],
73+
["keyword", "of"],
74+
["keyword", "parameters"],
75+
["keyword", "partial"],
76+
["keyword", "postulate"],
77+
["keyword", "private"],
78+
["keyword", "proof"],
79+
["keyword", "public"],
80+
["keyword", "quoteGoal"],
81+
["keyword", "record"],
82+
["keyword", "rewrite"],
83+
["keyword", "syntax"],
84+
["keyword", "then"],
85+
["keyword", "total"],
86+
["keyword", "using"],
87+
["keyword", "where"],
88+
["keyword", "with"]
1389
]
1490

1591
----------------------------------------------------
1692

17-
Checks for some keywords.
93+
Checks for some keywords.

0 commit comments

Comments
 (0)
Please sign in to comment.