From 491c3c7fbae55185b27ac704d70089ba00235171 Mon Sep 17 00:00:00 2001 From: David Beniamine Date: Sun, 10 Sep 2017 12:07:44 +0200 Subject: [PATCH] Remove python dependency --- syntax/python/dateregex/dateregex/__init__.py | 11 --- syntax/python/dateregex/dateregex/after.py | 95 ------------------- syntax/python/dateregex/dateregex/before.py | 79 --------------- syntax/python/todo.py | 31 ------ syntax/todo.vim | 64 ++++++------- 5 files changed, 28 insertions(+), 252 deletions(-) delete mode 100644 syntax/python/dateregex/dateregex/__init__.py delete mode 100644 syntax/python/dateregex/dateregex/after.py delete mode 100644 syntax/python/dateregex/dateregex/before.py delete mode 100644 syntax/python/todo.py diff --git a/syntax/python/dateregex/dateregex/__init__.py b/syntax/python/dateregex/dateregex/__init__.py deleted file mode 100644 index 6864127..0000000 --- a/syntax/python/dateregex/dateregex/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# File: __init__.py -# Author: Guilherme Victal -# Description: Dateregex library entry point -# License: Vim license -# Website: http://github.com/freitass/todo.txt-vim -# Version: 0.1 - -from dateregex.after import regex_date_after -from dateregex.before import regex_date_before diff --git a/syntax/python/dateregex/dateregex/after.py b/syntax/python/dateregex/dateregex/after.py deleted file mode 100644 index 1e4027a..0000000 --- a/syntax/python/dateregex/dateregex/after.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# File: after.py -# Author: Guilherme Victal -# Description: Generates regexes after a certain date -# License: Vim license -# Website: http://github.com/freitass/todo.txt-vim -# Version: 0.1 - -from datetime import date, timedelta, MAXYEAR - - -def _year_regex_after(year): - if int(year) > MAXYEAR: - return None - - year_regex = r'(\d+\d{%s}' % len(year) - for idx, digit in enumerate(year): - if digit != '9': - regex = '|' + year[0:idx] - regex += '9' if digit == '8' else '[%s-9]' % str(int(digit) + 1) - if idx < len(year) - 1: - regex += '\d{%s}' % (len(year) - (idx + 1)) - year_regex += regex - - year_regex += ')' - return '-'.join((year_regex, r'\d{2}', r'\d{2}')) - - -def _month_regex_after(year, month): - if month == '12': - return None - - digit1, digit2 = month - if digit1 == '1': - month_regex = r'12' if month == '11' else r'1[12]' - else: - month_regex = r'1[0-2]' - if digit2 != '9': - if digit2 == '8': - month_regex = r'(' + month_regex + r'|09)' - else: - month_regex = r'(' + month_regex + r'|0[%s-9])' - month_regex = month_regex % str(int(digit2) + 1) - return '-'.join((year, month_regex, r'\d{2}')) - -def _day_regex_after(year, month, day): - last_month_day = str((date(int(year), (int(month) + 1) % 12, 1) + - date.resolution).day) - if day == last_month_day: - return None - day_regex = r'(' - digit1, digit2 = day - last_digit1, last_digit2 = last_month_day - if digit1 == last_digit1: - day_regex = last_month_day if int(digit2) == int(last_digit2) - 1 else last_digit1 + r'[%s-%s]' % (str(int(digit2) + 1), last_digit2) - else: - day_regex = r'(' - day_regex += last_digit1 if int(digit1) == int(last_digit1) - 1 else r'[%s-%s]' % (str(int(digit1) + 1), last_digit1) - day_regex +=r'\d' - if digit2 < '9': - day_regex += '|' + digit1 - day_regex += '9' if digit2 == '8' else r'[%s-9]' % str(int(digit2) + 1) - - day_regex += ')' - return '-'.join((year, month, day_regex)) - - -def regex_date_after(given_date): - year, month, day = given_date.isoformat().split('-') - - year_regex = _year_regex_after(year) - month_regex = _month_regex_after(year, month) - day_regex = _day_regex_after(year, month, day) - - date_regex = '(' + year_regex if year_regex else '(' - date_regex += ('|' + month_regex) if month_regex else '' - date_regex += ('|' + day_regex) if day_regex else '' - date_regex += ')' - return date_regex - - -def __main(): - import re - date_regex = regex_date_after(date(1999,12,31)) - print(date_regex) - pattern = re.compile(date_regex) - - - d = date.today() + date.resolution - assert pattern.match(date.strftime(d, '%Y-%m-%d')) is not None - print(date.strftime(d, '%Y-%m-%d') + ' is okay') - d += date.resolution - -if __name__ == '__main__': - __main() diff --git a/syntax/python/dateregex/dateregex/before.py b/syntax/python/dateregex/dateregex/before.py deleted file mode 100644 index a2c7d83..0000000 --- a/syntax/python/dateregex/dateregex/before.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# File: before.py -# Author: Guilherme Victal -# Description: Generates regexes before a certain date -# License: Vim license -# Website: http://github.com/freitass/todo.txt-vim -# Version: 0.1 - -from datetime import date, timedelta, MINYEAR - -def _year_regex_before(year): - if int(year) <= MINYEAR: - return None - year_regex = r'(' - year_regex += r'\d{1,%s}' % str(len(year) - 1) if len(year) > 1 else '' - for idx, digit in enumerate(year): - if digit != '0': - regex = '|' + year[0:idx] - regex += '0' if digit == '1' else '[0-%s]' % str(int(digit) - 1) - if idx < len(year) - 1: - regex += '\d{%s}' % (len(year) - (idx + 1)) - year_regex += regex - - year_regex += ')' - return '-'.join((year_regex, r'\d{2}', r'\d{2}')) - -def _month_regex_before(year, month): - if month == '01': - return None - - digit1, digit2 = month - if digit1 == '0': - month_regex = '01' if month == '02' else r'0[1-%s]' % str(int(digit2) - 1) - elif month == '10': - month_regex = r'0\d' - elif month == '11': - month_regex = r'(0\d|10)' - else: - month_regex = r'(0\d|1[01])' - - return '-'.join((year, month_regex, r'\d{2}')) - -def _day_regex_before(year, month, day): - if day == '01': - return None - last_month_day = str((date(int(year), int(month) % 12 + 1, 1) + - date.resolution).day) - last_digit1, last_digit2 = last_month_day - - digit1, digit2 = day - if digit1 == '0': - day_regex = '01' if day == '02' else r'0[1-%s]' % str(int(digit2) - 1) - else: - day_regex = r'(' - day_regex += '0' if digit1 == '1' else r'[0-%s]' % str(int(digit1) - 1) - day_regex += r'\d' - if digit2 != '0': - day_regex += '|' - day_regex += digit1 - day_regex += '0' if digit2 == '1' else r'[0-%s]' % str(int(digit2) - 1) - day_regex += ')' - - return '-'.join((year, month, day_regex)) - - - - -def regex_date_before(given_date): - year, month, day = given_date.isoformat().split('-') - - year_regex = _year_regex_before(year) - month_regex = _month_regex_before(year, month) - day_regex = _day_regex_before(year, month, day) - - date_regex = '(' + year_regex if year_regex else '(' - date_regex += ('|' + month_regex) if month_regex else '' - date_regex += ('|' + day_regex) if day_regex else '' - date_regex += ')' - return date_regex diff --git a/syntax/python/todo.py b/syntax/python/todo.py deleted file mode 100644 index 122ad22..0000000 --- a/syntax/python/todo.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- -# File: todo.py -# Description: Todo.txt overdue date syntax script -# License: Vim license -# Website: http://github.com/freitass/todo.txt-vim -# Version: 0.1 - -import vim -import os -import sys -from datetime import date - -dateregex_dir = os.path.join(vim.eval('s:script_dir'), 'dateregex') -if os.path.isdir(dateregex_dir): - sys.path.insert(0, dateregex_dir) - -def add_due_date_syntax_highlight(): - try: - from dateregex import regex_date_before - except ImportError: - print("dateregex module not found. Overdue dates won't be highlighted") - return - - regex = regex_date_before(date.today()) - regex = r'(^|<)due:%s(>|$)' % regex - - vim.command("syntax match OverDueDate '\\v\\c%s'" % regex) - vim.command("highlight default link OverDueDate Error") - -add_due_date_syntax_highlight() diff --git a/syntax/todo.vim b/syntax/todo.vim index 84db56b..9ebeb03 100644 --- a/syntax/todo.vim +++ b/syntax/todo.vim @@ -10,32 +10,32 @@ if exists("b:current_syntax") endif syntax match TodoDone '^[xX]\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext -syntax match TodoPriorityA '^([aA])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityB '^([bB])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityC '^([cC])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityD '^([dD])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityE '^([eE])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityF '^([fF])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityG '^([gG])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityH '^([hH])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityI '^([iI])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityJ '^([jJ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityK '^([kK])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityL '^([lL])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityM '^([mM])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityN '^([nN])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityO '^([oO])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityP '^([pP])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityQ '^([qQ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityR '^([rR])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityS '^([sS])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityT '^([tT])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityU '^([uU])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityV '^([vV])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityW '^([wW])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityX '^([xX])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityY '^([yY])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate -syntax match TodoPriorityZ '^([zZ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,OverDueDate +syntax match TodoPriorityA '^([aA])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityB '^([bB])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityC '^([cC])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityD '^([dD])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityE '^([eE])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityF '^([fF])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityG '^([gG])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityH '^([hH])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityI '^([iI])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityJ '^([jJ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityK '^([kK])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityL '^([lL])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityM '^([mM])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityN '^([nN])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityO '^([oO])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityP '^([pP])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityQ '^([qQ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityR '^([rR])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityS '^([sS])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityT '^([tT])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityU '^([uU])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityV '^([vV])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityW '^([wW])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityX '^([xX])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityY '^([yY])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate +syntax match TodoPriorityZ '^([zZ])\s.\+$' contains=TodoKey,TodoDate,TodoProject,TodoContext,TodoOverDueDate syntax match TodoDate '\d\{2,4\}-\d\{2\}-\d\{2\}' contains=NONE syntax match TodoKey '\S*\S:\S\S*' contains=TodoDate syntax match TodoProject '\(^\|\W\)+[^[:blank:]]\+' contains=NONE @@ -167,15 +167,7 @@ function! todo#GetDateRegexForPastDates(...) return l:overdueRex endfunction -let b:curdir = expand(':p:h') -let s:script_dir = b:curdir . "/python/" -if has('python3') - execute "py3file " . s:script_dir. "todo.py" -elseif has('python') - execute "pyfile " . s:script_dir. "todo.py" -else - execute 'syntax match TodoOverDueDate /\v\c/' - highlight default link TodoOverDueDate Error -endif +execute 'syntax match TodoOverDueDate /\v\c/' +highlight default link TodoOverDueDate Error let b:current_syntax = "todo"