forked from SublimeHaskell/SublimeHaskell
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfix_syntax.py
More file actions
27 lines (21 loc) · 933 Bytes
/
fix_syntax.py
File metadata and controls
27 lines (21 loc) · 933 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Sublime's built-in Haskell lexer (Packages/Haskell/Haskell.tmLanguage)
# is slightly broken.
#
# This sets the syntax of all Haskell files to our
# SublimeHaskell/Syntaxes/Haskell-SublimeHaskell.tmLanguage instead.
#
# Forked from https://gist.github.com/2940866.
import sublime_plugin
import os
class DetectFileTypeCommand(sublime_plugin.EventListener):
def on_load(self, view):
filename = view.file_name()
if not filename: # buffer has never been saved
return
name = os.path.basename(filename.lower())
if name.endswith(".hs") or name.endswith(".hsc"):
set_our_syntax(view, filename)
# TODO Do we also have to fix Literate Haskell?
def set_our_syntax(view, filename):
view.settings().set('syntax', 'Packages/SublimeHaskell/Syntaxes/Haskell-SublimeHaskell.tmLanguage')
print("Switched syntax to SublimeHaskell's fixed Haskell syntax: " + filename)