def saveCodeInFile(self, view): """ If the sketch in the current view has been not saved, it generate a random name and stores in a temp folder. Arguments: view {ST Object} -- Object with multiples options of ST """ ext = '.ino' tmp_path = Paths.getTempPath() file_name = str(time.time()).split('.')[0] file_path = os.path.join(tmp_path, file_name) file_path = os.path.join(file_path, 'src') os.makedirs(file_path) full_path = file_name + ext full_path = os.path.join(file_path, full_path) region = sublime.Region(0, view.size()) text = view.substr(region) file = JSONFile(full_path) file.writeFile(text) view.set_scratch(True) window = view.window() window.run_command('close') view = window.open_file(full_path) return (True, view)
def createSyntaxFile(): """ Generate the syntax file based in the installed libraries """ try: from . import Paths from .JSONFile import JSONFile except: from libs import Paths from libs.JSONFile import JSONFile keywords = getKeywords() LITERAL1s = [] KEYWORD1s = [] KEYWORD2s = [] KEYWORD3s = [] # set keywords for k in keywords: for w in k.get_keywords(): if 'LITERAL1' in w.get_type(): LITERAL1s.append(w.get_id()) if 'KEYWORD1' in w.get_type(): KEYWORD1s.append(w.get_id()) if 'KEYWORD2' in w.get_type(): KEYWORD2s.append(w.get_id()) if 'KEYWORD3' in w.get_type(): KEYWORD3s.append(w.get_id()) # formating LITERAL1s = set(LITERAL1s) LITERAL1s = '|'.join(LITERAL1s) KEYWORD1s = set(KEYWORD1s) KEYWORD1s = '|'.join(KEYWORD1s) KEYWORD2s = set(KEYWORD2s) KEYWORD2s = '|'.join(KEYWORD2s) KEYWORD3s = set(KEYWORD3s) KEYWORD3s = '|'.join(KEYWORD3s) # get sintax preset sintax_path = Paths.getSyntaxPath() sintax_file = JSONFile(sintax_path) sintax = sintax_file.readFile() # replace words in sintax file sintax = sintax.replace('${LITERAL1}', LITERAL1s) sintax = sintax.replace('${KEYWORD1}', KEYWORD1s) sintax = sintax.replace('${KEYWORD2}', KEYWORD2s) sintax = sintax.replace('${KEYWORD3}', KEYWORD3s) # Save File file_path = Paths.getTmLanguage() language_file = JSONFile(file_path) language_file.writeFile(sintax)