Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
hairyhum committed Aug 22, 2012
0 parents commit 502b56f
Show file tree
Hide file tree
Showing 10 changed files with 132 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Default (Linux).sublime-keymap
@@ -0,0 +1,8 @@
[
{
"keys": [
"ctrl+alt+h"
],
"command": "stylishhaskell"
}
]
8 changes: 8 additions & 0 deletions Default (OSX).sublime-keymap
@@ -0,0 +1,8 @@
[
{
"keys": [
"super+ctrl+h"
],
"command": "stylishhaskell"
}
]
8 changes: 8 additions & 0 deletions Default (Windows).sublime-keymap
@@ -0,0 +1,8 @@
[
{
"keys": [
"ctrl+alt+h"
],
"command": "stylishhaskell"
}
]
6 changes: 6 additions & 0 deletions Default.sublime-commands
@@ -0,0 +1,6 @@
[
{
"caption": "StylishHaskell: Reformat haskell",
"command": "stylishhaskell"
}
]
38 changes: 38 additions & 0 deletions Main.sublime-menu
@@ -0,0 +1,38 @@
[
{
"mnemonic": "n",
"caption": "Preferences",
"id": "preferences",
"children": [
{
"mnemonic": "P",
"caption": "Package Settings",
"id": "package-settings",
"children": [
{
"caption": "StylishHaskell",
"children": [
{
"caption": "Settings – Default",
"args": {
"file": "${packages}/StylishHaskell/StylishHaskell.sublime-settings"
},
"command": "open_file"
},
{
"caption": "Settings – User",
"args": {
"file": "${packages}/User/StylishHaskell.sublime-settings"
},
"command": "open_file"
},
{
"caption": "-"
}
]
}
]
}
]
}
]
Empty file added README.md
Empty file.
59 changes: 59 additions & 0 deletions StylishHaskell.py
@@ -0,0 +1,59 @@
import sublime
import sublime_plugin
import subprocess
import errno
import os
import tempfile


s = sublime.load_settings("StylishHaskell.sublime-settings")
paths = s.get('add_to_PATH')

if not any(paths):
try:
sublHask = sublime.load_settings("SublimeHaskell.sublime-settings")
paths = sublHask.get("add_to_PATH")
except:
pass

path = ':'.join(paths)


class StylishhaskellCommand(sublime_plugin.TextCommand):
def run(self, edit):
regions = []
for region in self.view.sel():
# If no selection, use the entire file as the selection
regions.append(sublime.Region(region.a, region.b))
if region.empty() and s.get("use_entire_file_if_no_selection"):
selection = sublime.Region(0, self.view.size())
else:
selection = region
try:
result = self.callStylish(self.view.substr(selection))
if result:
self.view.replace(edit, selection, result)
except Exception as e:
sublime.status_message(str(e))
self.view.sel().clear()
for region in regions:

self.view.sel().add(region)

def callStylish(self, string):
try:
env = os.environ
env["PATH"] = (path + ":" if path else "") + os.environ['PATH']
tfile = tempfile.NamedTemporaryFile(delete=False)
tfile.write(string)
tfile.close()
p2 = subprocess.Popen("stylish-haskell " + tfile.name, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, shell=True)
result = p2.communicate()[0]
os.unlink(tfile.name)
return result
except OSError as e:
if e.errno == errno.ENOENT:
sublime.error_message("StylishHaskell: stylish-haskell executable was not found!\n"
+ "Try adjusting the 'add_to_PATH' setting.\n")
except Exception as e:
sublime.error_message("error " + str(e))
Binary file added StylishHaskell.pyc
Binary file not shown.
4 changes: 4 additions & 0 deletions StylishHaskell.sublime-settings
@@ -0,0 +1,4 @@
{
"use_entire_file_if_no_selection" : true,
"add_to_PATH": []
}
1 change: 1 addition & 0 deletions package-metadata.json
@@ -0,0 +1 @@
{"url": "https://github.com/hairyhum/SublimeStylishHaskell", "version": "2012.08.22.10.31", "description": "plugin for sublime text 2 editor to stylish-haskell util"}

0 comments on commit 502b56f

Please sign in to comment.