From f295fb9d88a7191ca9ea21f5a2859ba9d80bada6 Mon Sep 17 00:00:00 2001 From: Radoslaw Wieckowski Date: Thu, 22 May 2014 00:13:37 +0200 Subject: [PATCH 1/2] PDF preview for windows --- GraphvizPreview.py | 9 +++++++-- helpers.py | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/GraphvizPreview.py b/GraphvizPreview.py index 77edcf6..f931909 100644 --- a/GraphvizPreview.py +++ b/GraphvizPreview.py @@ -1,5 +1,7 @@ import sublime, sublime_plugin from subprocess import call +import os +import platform try: # python 3 from .helpers import surroundingGraphviz, graphvizPDF, ENVIRON @@ -27,8 +29,11 @@ def run(self, edit): pdf_filename = graphvizPDF(code) try: - call(['open', pdf_filename], env=ENVIRON) + if platform.system() == 'Windows': + os.startfile(pdf_filename) + else: + call(['open', pdf_filename], env=ENVIRON) except Exception as e: - sublime.error_message('Graphviz: Could not open PDF, only works for Mac... fork this repo for your OS!') + sublime.error_message('Graphviz: Could not open PDF, ' + str(e)) raise e diff --git a/helpers.py b/helpers.py index 6338010..a231cba 100644 --- a/helpers.py +++ b/helpers.py @@ -1,10 +1,12 @@ from subprocess import call import os +import platform import re import tempfile ENVIRON = os.environ -ENVIRON['PATH'] += ':/usr/local/bin' +if platform.system() != 'Windows': + ENVIRON['PATH'] += ':/usr/local/bin' DIGRAPH_START = re.compile('.*(digraph([ \t\n\r]+[a-zA-Z\200-\377_][a-zA-Z\200-\3770-9_]*[ \t\n\r]*{|[ \t\n\r]*{).*)', re.DOTALL | re.IGNORECASE) From cb2af11e089e988e85df90c641373d2330e48d00 Mon Sep 17 00:00:00 2001 From: Radoslaw Wieckowski Date: Thu, 22 May 2014 22:15:52 +0200 Subject: [PATCH 2/2] Preview for DOT files --- GraphvizPreview.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/GraphvizPreview.py b/GraphvizPreview.py index f931909..7878506 100644 --- a/GraphvizPreview.py +++ b/GraphvizPreview.py @@ -8,24 +8,16 @@ except ValueError: # python 2 from helpers import surroundingGraphviz, graphvizPDF, ENVIRON +DOT_SYNTAX = 'Packages/Graphviz/DOT.tmLanguage' class GraphvizPreviewCommand(sublime_plugin.TextCommand): def run(self, edit): - sel = self.view.sel()[0] - - if not sel.empty(): - code = self.view.substr(sel).strip() - else: - code = surroundingGraphviz( - self.view.substr(sublime.Region(0, self.view.size())), - sel.begin() - ) + code = self.code() if not code: sublime.error_message('Graphviz: Please place cursor in graphviz code before running') return - pdf_filename = graphvizPDF(code) try: @@ -37,3 +29,16 @@ def run(self, edit): sublime.error_message('Graphviz: Could not open PDF, ' + str(e)) raise e + def code(self): + syntax = self.view.settings().get('syntax') + sel = self.view.sel()[0] + + if syntax == DOT_SYNTAX: + return self.content() + elif not sel.empty(): + code = self.view.substr(sel).strip() + else: + code = surroundingGraphviz(self.content(), sel.begin()) + + def content(self): + return self.view.substr(sublime.Region(0, self.view.size())) \ No newline at end of file