Files
MarkdownLivePreview/MarkdownLivePreview.py
2017-01-07 16:09:36 +11:00

54 lines
1.6 KiB
Python

# -*- encoding: utf-8 -*-
import sys
import os.path
import sublime
import sublime_plugin
from .MLPApi import *
from .setting_names import *
from .functions import *
class MarkdownLivePreviewListener(sublime_plugin.EventListener):
def on_modified(self, view):
if not is_markdown_view(view):
return
vsettings = view.settings()
if vsettings.get(PREVIEW_ENABLED):
id = vsettings.get(PREVIEW_ID)
preview = get_view_from_id(view.window(), id)
if id is None or preview is None:
preview = create_preview(view)
sublime.set_timeout_async(lambda: show_html(view, preview), 1000)
else:
show_html(view, preview)
return
def on_activated(self, view):
# if view is md_view and has no preview
# -> create preview
window = view.window()
vsettings = view.settings()
if vsettings.get(PREVIEW_ENABLED):
id = vsettings.get(PREVIEW_ID)
preview = get_view_from_id(window, id)
if id is None or preview is None:
preview = create_preview(view)
sublime.set_timeout(lambda: show_html(view, preview), 1000)
else:
show_html(view, preview)
return
# if view is preview
# -> do nothing
if vsettings.get(IS_PREVIEW):
return
# if view is not the md_view or the preview
# remove preview if any
for view, settings in find_preview(window):
settings.set(IS_HIDDEN, True)
view.close()