Skip to content

Commit c3b9a0e

Browse files
Merge branch 'topic/gs.292.asm_hightlighting' into 'master'
Fix Asm highlighter not working for asm file Closes #292 See merge request eng/ide/gnatstudio!476
2 parents ec82e4a + a72248e commit c3b9a0e

File tree

7 files changed

+52
-6
lines changed

7 files changed

+52
-6
lines changed

share/support/languages/asm_highlighter.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99

1010
@hook('gps_started')
1111
def on_gps_started():
12-
register_highlighter(
13-
language="asm",
14-
spec=(
12+
spec = (
1513
# Match comments lines
1614
region(r"#", "\n", tag=tag_comment,
1715
highlighter=(hl_comment_notes,)),
@@ -32,6 +30,13 @@ def on_gps_started():
3230
region(
3331
r'"', r'"|[^\\]$', tag=tag_string,
3432
highlighter=(hl_inside_strings,)
33+
)
3534
)
36-
)
35+
register_highlighter(
36+
language="asm",
37+
spec=spec
38+
)
39+
register_highlighter(
40+
language="asm2",
41+
spec=spec
3742
)

share/support/languages/highlighter/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class HighlighterModule(Module):
1818
preferences = {}
1919

2020
def init_highlighting(self, f):
21-
highlighter = self.highlighters.get(f.language(), None)
21+
highlighter = self.highlighters.get(f.language().lower(), None)
2222
if isinstance(highlighter, Highlighter):
2323
ed = GPS.EditorBuffer.get(f, open=False)
2424
if ed:

share/support/languages/highlighter/interface.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,4 +383,5 @@ def register_highlighter(language, spec, igncase=False):
383383
:param tuple spec: The spec of the highlighter.
384384
"""
385385
from highlighter.engine import Highlighter, HighlighterModule
386-
HighlighterModule.highlighters[language] = Highlighter(spec, igncase)
386+
HighlighterModule.highlighters[language.lower()] = Highlighter(spec,
387+
igncase)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0x0000000000400400 <+0>: mov 0x200c2e(%rip),%eax # 0x601034 <y>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0x0000000000400400 <+0>: mov 0x200c2e(%rip),%eax # 0x601034 <y>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""
2+
Check the highlighting of assembly files.
3+
"""
4+
5+
from GPS import *
6+
from gs_utils.internal.utils import *
7+
8+
9+
EXPECTED = """keywords_hl 1:1 1:18
10+
numbers_hl 1:22 1:22
11+
comments_hl 1:60 1:74
12+
"""
13+
14+
15+
@run_test_driver
16+
def run_test():
17+
# Test ASM file
18+
asm_file = GPS.File("foo.s")
19+
buf = GPS.EditorBuffer.get(asm_file)
20+
yield wait_idle()
21+
gps_assert(asm_file.language().lower(),
22+
"asm",
23+
"Wrong language for ASM file")
24+
gps_assert(get_all_tags(buf),
25+
EXPECTED,
26+
"Issue for syntax hightlighting in ASM file")
27+
28+
# Test ASM2 file
29+
asm2_file = GPS.File("bar.asm")
30+
buf = GPS.EditorBuffer.get(asm2_file)
31+
yield wait_idle()
32+
gps_assert(asm2_file.language().lower(),
33+
"asm2",
34+
"Wrong language for ASM2 file")
35+
gps_assert(get_all_tags(buf),
36+
EXPECTED,
37+
"Issue for syntax hightlighting in ASM2 file")
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
title: 'gs.292.asm_hightlighting'

0 commit comments

Comments
 (0)