* `todo`, `note` now do not add comment strings when in a comment line * `fixme` added to match `todo` and `note * `date` renamed `datetime` and updated to match the unix `date` command * `date`, `time` added inserting only the date or time now * `utc` updated, no longer spitting the timezone offset
		
			
				
	
	
		
			108 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| priority -1
 | |
| 
 | |
| snippet me "Identify me"
 | |
| Kenneth Benzie (Benie) <k.benzie83@gmail.com>
 | |
| endsnippet
 | |
| 
 | |
| global !p
 | |
| class Comment(object):
 | |
| 	def __init__(self):
 | |
| 		# Get the commentstring.
 | |
| 		commentstring = snip.opt('&commentstring').strip()
 | |
| 		# Slipt it into before and after parts.
 | |
| 		commentparts = [part.strip() for part in commentstring.split('%s')]
 | |
| 		self.commentbefore = commentparts[0] + ' '
 | |
| 		self.commentafter = ' ' + commentparts[1] if commentparts[1] else ''
 | |
| 		# Determine if we are in an existing comment.
 | |
| 		line = vim.current.buffer[vim.current.window.cursor[0] - 1].strip()
 | |
| 		# If interpolation has not occcured and the current line starts with the
 | |
| 		# comment leader, we are in a comment.
 | |
| 		self.incomment = not snip.c and line.startswith(commentparts[0])
 | |
| 
 | |
| 	def before(self):
 | |
| 		return '' if self.incomment else self.commentbefore
 | |
| 
 | |
| 	def after(self):
 | |
| 		return '' if self.incomment else self.commentafter
 | |
| endglobal
 | |
| 
 | |
| snippet todo "TODO commment"
 | |
| `!p comment=Comment()
 | |
| snip.rv=comment.before()`TODO${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
 | |
| endsnippet
 | |
| 
 | |
| snippet fixme "FIXME comment"
 | |
| `!p comment=Comment()
 | |
| snip.rv=comment.before()`FIXME${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
 | |
| endsnippet
 | |
| 
 | |
| snippet note "NOTE comment"
 | |
| `!p comment=Comment()
 | |
| snip.rv=comment.before()`NOTE: $0`!p snip.rv=comment.after()`
 | |
| endsnippet
 | |
| 
 | |
| global !p
 | |
| from datetime import datetime, timedelta, tzinfo
 | |
| from time import daylight, gmtime, localtime, timezone, tzname
 | |
| 
 | |
| class LocalTZ(tzinfo):
 | |
| 	"""Query OS for local timezone offset."""
 | |
| 
 | |
| 	def __init__(self):
 | |
| 		"""Initialize LocalTZ."""
 | |
| 		tzinfo.__init__(self)
 | |
| 		self.unixEpochOrdinal = datetime.utcfromtimestamp(
 | |
| 			0).toordinal()
 | |
| 
 | |
| 	def dst(self, _):
 | |
| 		return timedelta(0)
 | |
| 
 | |
| 	def utcoffset(self, dt):
 | |
| 		t = ((dt.toordinal() - self.unixEpochOrdinal) * 86400 + dt.hour * 3600
 | |
| 			 + dt.second + timezone)
 | |
| 		utc = datetime(*gmtime(t)[:6])
 | |
| 		local = datetime(*localtime(t)[:6])
 | |
| 		return local - utc
 | |
| 
 | |
| 	def tzname(self, dt):
 | |
| 		if daylight and localtime().tm_isdst:
 | |
| 			return tzname[daylight]
 | |
| 		return tzname[0]
 | |
| endglobal
 | |
| 
 | |
| snippet date "date now"
 | |
| `!p snip.rv=datetime.now().strftime('%a %d %b %Y')`
 | |
| endsnippet
 | |
| 
 | |
| snippet time "time now"
 | |
| `!p snip.rv=datetime.now().strftime('%H:%M:%S')`
 | |
| endsnippet
 | |
| 
 | |
| snippet datetime "date and time now"
 | |
| `!p snip.rv=datetime.now(LocalTZ()).strftime('%a %d %b %Y %H:%M:%S %Z')`
 | |
| endsnippet
 | |
| 
 | |
| snippet utc "UTC date time now" i
 | |
| `!p snip.rv=datetime.now(LocalTZ()).strftime('%Y-%m-%dT%H:%M:%S%z')`
 | |
| endsnippet
 | |
| 
 | |
| snippet *x "GitHub style checkbox"
 | |
| * [${1:x}] $0
 | |
| endsnippet
 | |
| 
 | |
| snippet "* [" "GitHub style checkbox"
 | |
| * [${1: }] $0
 | |
| endsnippet
 | |
| 
 | |
| snippet *[ "GitHub style checkbox"
 | |
| * [${1: }] $0
 | |
| endsnippet
 | |
| 
 | |
| snippet shrug "¯\\_(ツ)_/¯" i
 | |
| ¯\_(ツ)_/¯
 | |
| endsnippet
 | |
| 
 | |
| snippet tableflip "(╯°▪°)╯︵┻━┻" i
 | |
| (╯°▪°)╯︵┻━┻
 | |
| endsnippet
 |