def InsertDrawerIfNotPresent(view, node, drawer = ":PROPERTIES:", onDone=None): if(drawer == ":PROPERTIES:"): if(node.property_drawer_location): evt.EmitIf(onDone) return False else: for d in node.drawers: if((":" + d["name"] + ":") == drawer): evt.EmitIf(onDone) return False level = node.level indent = " " + (" " * level) drawerRow = node.body_lines_start # Properties should be the first drawer... if(drawer != ":PROPERTIES:" and node.property_drawer_location): drawerRow = node.property_drawer_location[1] + 1 # Also skip over SCHEDULED, DEADLINE and CLOSED lines for row in range(drawerRow, node.local_end_row + 1): pt = view.text_point(row, 0) line = view.line(pt) txt = view.substr(line) m = RE_SDC.search(txt) if(not m): drawerRow = row break else: drawerRow = row + 1 drawerHere = view.text_point(drawerRow, 0) newline = "\n" if view.isBeyondLastRow(drawerRow) else "" if(drawer == ":PROPERTIES:"): node.set_property_drawer_location((drawerRow,drawerRow+1)) view.run_command("org_internal_insert", {"location": drawerHere, "text": newline + indent + drawer +"\n" + indent + ":END:\n","onDone":onDone}) return True
def run(self, edit, onDone=None): self.file = db.Get().FindInfo(self.view) if (None == self.file): log.error("Not an org file? Cannot build reveal document") evt.EmitIf(onDone) return doc = None self.style = GetGlobalOption(self.file, "HTML_STYLE", "HtmlStyle", "blocky").lower() log.log(51, "EXPORT STYLE: " + self.style) try: outputFilename = HtmlFilename(self.view) doc = HtmlDoc(outputFilename, self.file) doc.style = self.style doc.StartHead() self.build_head(doc) doc.EndHead() doc.StartBody() self.build_body(doc) doc.EndBody() finally: if (None != doc): doc.Close() log.log(51, "EXPORT COMPLETE: " + str(outputFilename)) self.view.set_status("ORG_EXPORT", "EXPORT COMPLETE: " + str(outputFilename)) sublime.set_timeout(self.clear_status, 1000 * 10) evt.EmitIf(onDone)
def run(self, edit, location, text, onDone=None): self.view.insert(edit, location, text) # Reload the file automatically when we edit it. file = db.Get().FindInfo(self.view.file_name()) if (file != None): file.LoadS(self.view) evt.EmitIf(onDone)
def run(self, edit, heading=None, onDone=None): curNode = db.Get().AtInView(self.view) if (not curNode): file = db.Get().FindInfo(self.view) if (len(file.org) > 0): curNode = file.org[len(file.org) - 1] if (not curNode): level = 1 l = self.view.line(self.view.size()) reg = sublime.Region(l.start(), l.start()) reg = here else: level = curNode.level reg = curNode.region(self.view) if (level == 0): level = 1 here = sublime.Region(view.size(), view.size()) else: here = sublime.Region(reg.end(), reg.end()) self.view.sel().clear() self.view.sel().add(reg.end() + 1) #self.view.show(here) self.view.insert(edit, self.view.sel()[0].begin(), '\n' + ('*' * (level + 1)) + ' ' + heading) evt.EmitIf(onDone)
def RemoveClosed(view, node, onDone=None): closedPt = LocateClosed(view, node) if (closedPt): view.ReplaceRegion(closedPt.IncEnd(), "", onDone) #view.run_command("org_internal_replace", {"start": closedPt.begin(), "end": closedPt.end() + 1, "text": "", "onDone": onDone}) else: evt.EmitIf(onDone)
def run(self, edit, start, end, text, onDone=None): region = sublime.Region(start, end) self.view.replace(edit, region, text) # Reload the file automatically when we edit it. file = db.Get().FindInfo(self.view.file_name()) if (file != None): file.LoadS(self.view) evt.EmitIf(onDone)
def OnDone(self): evt.EmitIf(self.onDone) if (self.silent != None): evt.EmitIfParams(self.onDoneResultsPos, postFormat=self.formattedOutput, preFormat=self.preFormattedOutput, name=self.onDoneFnName) else: evt.EmitIfParams(self.onDoneResultsPos, pos=self.resultsTxtStart, name=self.onDoneFnName)
def OnDoneSourceBlockExecution(self): # Reload if necessary self.file = db.Get().FindInfo(self.view) self.doc = None try: outputFilename = exp.ExportFilename(self.view,".html",self.suffix) self.doc = RevealDoc(outputFilename,self.file) self.helper = exp.OrgExportHelper(self.view,self.index) self.helper.Run(outputFilename, self.doc) finally: evt.EmitIf(self.onDone)
def OnDoneSourceBlockExecution(self): # Reload if necessary self.file = db.Get().FindInfo(self.view) doc = None self.style = exp.GetGlobalOption(self.file,"HTML_STYLE","HtmlStyle","blocky").lower() log.log(51,"EXPORT STYLE: " + self.style) try: outputFilename = exp.ExportFilename(self.view,".html", self.suffix) doc = HtmlDoc(outputFilename, self.file) doc.style = self.style self.helper = HtmlExportHelper(self.view, self.index) self.helper.Run(outputFilename, doc) finally: evt.EmitIf(self.onDone)
def OnDoneSourceBlockExecution(self): # Reload if necessary self.file = db.Get().FindInfo(self.view) self.doc = None self.docClass = exp.GetGlobalOption(self.file, "LATEX_CLASS", "latexClass", "article").lower() try: outputFilename = exp.ExportFilename(self.view, ".tex", self.suffix) self.doc = LatexDoc(outputFilename, self.file) self.doc.setClass(self.docClass) self.helper = exp.OrgExportHelper(self.view, self.index) self.helper.Run(outputFilename, self.doc) finally: evt.EmitIf(self.onDone)
def run(self,edit, onDone=None, index=None, suffix=""): self.file = db.Get().FindInfo(self.view) self.onDone = onDone self.suffix = suffix if(index != None): self.index = index else: self.index = None if(None == self.file): log.error("Not an org file? Cannot build reveal document") evt.EmitIf(onDone) return if(sets.Get("htmlExecuteSourceOnExport",True)): self.view.run_command('org_execute_all_source_blocks',{"onDone":evt.Make(self.OnDoneSourceBlockExecution),"amExporting": True}) else: self.OnDoneSourceBlockExecution()
def run(self, edit, onDone=None): curNode = db.Get().AtInView(self.view) needsNewline = False if (not curNode): file = db.Get().FindInfo(self.view) if (len(file.org) > 0): curNode = file.org[len(file.org) - 1] if (not curNode): level = 1 l = self.view.line(self.view.size()) reg = sublime.Region(l.start(), l.start()) reg = here else: level = curNode.level reg = curNode.region(self.view, True) if (level == 0): level = 1 here = sublime.Region(view.size(), view.size()) else: here = sublime.Region(reg.end(), reg.end()) text = self.view.substr(self.view.line(here)) if (text.strip() != ""): needsNewline = True if (not needsNewline): ll = self.view.line(reg.end()) text = self.view.substr(ll) if (text.strip() == "" and len(text) > 0): # This is an empty line! Have to work at the front of this line! # Or we will insert to an odd location! reg = sublime.Region(ll.start(), ll.start()) self.view.sel().clear() self.view.sel().add(reg.end()) self.view.show(here) if (needsNewline): self.view.insert(edit, self.view.sel()[0].begin(), '\n') ai = sublime.active_window().active_view().settings().get( 'auto_indent') self.view.settings().set('auto_indent', False) self.view.run_command( "insert_snippet", { "name": "Packages/OrgExtended/orgsnippets/heading" + str( (level + 1)) + ".sublime-snippet" }) sublime.active_window().active_view().settings().set('auto_indent', ai) evt.EmitIf(onDone)
def OnDone(self, text): if (not text): return node = db.Get().AtInView(self.view) if (node): if not text in node.tags: (region, line) = self.view.getLineAndRegion(node.start_row) m = RE_TAGS.search(line) if (m.group('tags') != None): tags = m.group('tags') + text + ":" else: tags = " :" + text + ":" toline = "{0:70}{1}".format(m.group('heading'), tags) self.view.ReplaceRegion(region, toline, self.onDone) else: log.debug("Tag already part of node") evt.EmitIf(self.onDone)
def createProperty(self, prop): if(not prop): return isint = False try: i = int(prop) isint = True except: pass if(isint): inc = sets.Get("defaultEffortEstimateUnit","d") prop = prop + inc d = dur.OrgDuration.Parse(prop) if(d): node = db.Get().AtInView(self.view) if(node and node.level > 0): UpdateProperty(self.view, node, "Effort", str(d), self.onDone) else: log.error("Could not generate effort, please use org duration formation for your estimate") view.set_status("Error: ", prop + "is not a valid effort, please use org duration formation 1y 1d 1h 1min") evt.EmitIf(self.onDone)
def run(self, edit, onDone=None): ImageHandler.hide_images(self.view, edit) evt.EmitIf(onDone)
def on_totally_done(self): evt.EmitIf(self.onDone)
def onSaved(self): db.Get().Reload(self.savedView) evt.EmitIf(self.onDone)
def run(self, edit, onDone=None): ClockManager.ClockOut(self.view) evt.EmitIf(onDone)
def run(self, edit, onDone=None): ImageHandler.show_images(self.view) evt.EmitIf(onDone)
def OnDone(self): evt.EmitIf(self.onDone)
def OnDone(self): self.view.sel().clear() self.view.sel().add(self.cursor) evt.EmitIf(self.onDone)