priority -50 global !p import glob PRIORITIES = { 'generalPreamble': 0, 'Locale': 1, 'BibTex': 2, } def get_styles(folder): styles = [file[:-4] for file in glob.glob(f'{folder}/*.sty')] priorities = [1] * len(styles) for i, filename in enumerate(styles): for name, priority in PRIORITIES.items(): if name in filename: priorities[i] = priority if styles: priorities, styles = zip(*sorted(zip(priorities, styles))) return styles def try_get_styles(folders): for folder in folders: styles = get_styles(folder) if len(styles) > 0: return styles endglobal snippet defdoc "Default document template" \documentclass[a4paper, 14pt]{extarticle} `!p res = "" for style in try_get_styles(["./styles", '.', '..', '../styles']): res += "\\usepackage{" + style + "}\n" snip.rv = res ` \begin{document} $0 \end{document} endsnippet snippet defrep "Default small report template" \documentclass[a4paper, 14pt]{extarticle} `!p res = "" for style in get_styles("./styles"): res += "\\usepackage{" + style + "}\n" snip.rv = res ` \title{$1} \author{${2:Корытов Павел, 6304 \\\\ СПбГЭТУ \enquote{ЛЭТИ}}} \date{${3:\today}} \begin{document} \maketitle $0 \end{document} endsnippet snippet etutitle "ETU default report title" \begin{titlepage} \centering {\bfseries \uppercase{ Минобрнауки России \\\\ Санкт-Петербургский государственный \\\\ Электротехнический университет \\\\ \enquote{ЛЭТИ} им. В.И.Ульянова (Ленина)\\\\ } Кафедра ${1:МО ЭВМ} \vspace{\fill} \uppercase{${2:Отчёт}} \\\\ по ${3:лабораторной работе} ${4:№1} \\\\ по дисциплине \enquote{$5} \\\\ Тема: $6 } \vspace{\fill} \begin{tabularx}{0.8\textwidth}{l X c r} Студент гр. 6304 & & \underline{\hspace{3cm}} & Корытов П.В.\\\\ Преподаватель & & \underline{\hspace{3cm}} & $7 \end{tabularx} \vspace{1cm} Санкт-Петербург \\\\ \the\year{} \end{titlepage} $0 endsnippet snippet fhdr "My default fancy header" \usepackage{fancyhdr} \pagestyle{fancy} \newcommand{\theversion}{${1:1.0}} \fancyhead[L]{ \begin{tabular}{ll} \textit{${2:Project}} \\\\ ${3:Документ} \end{tabular} } \fancyhead[R]{ \begin{tabular}{ll} Версия: & \theversion{} \\\\ Дата: & \today{} \end{tabular} } endsnippet # vim:ft=snippets: