from test.vim_test_case import VimTestCase as _VimTest from test.constant import * # Test for bug 1251994 {{{# class Bug1251994(_VimTest): snippets = ('test', '${2:#2} ${1:#1};$0') keys = ' test' + EX + 'hello' + JF + 'world' + JF + 'blub' wanted = ' world hello;blub' # End: 1251994 #}}} # Test for https://github.com/SirVer/ultisnips/issues/157 (virtualedit) {{{# class VirtualEdit(_VimTest): snippets = ('pd', 'padding: ${1:0}px') keys = '\t\t\tpd' + EX + '2' wanted = '\t\t\tpadding: 2px' def _extra_options_pre_init(self, vim_config): vim_config.append('set virtualedit=all') vim_config.append('set noexpandtab') # End: 1251994 #}}} # Test for Github Pull Request #134 - Retain unnamed register {{{# class RetainsTheUnnamedRegister(_VimTest): snippets = ('test', '${1:hello} ${2:world} ${0}') keys = 'yank' + ESC + 'by4lea test' + EX + 'HELLO' + JF + JF + ESC + 'p' wanted = 'yank HELLO world yank' class RetainsTheUnnamedRegister_ButOnlyOnce(_VimTest): snippets = ('test', '${1:hello} ${2:world} ${0}') keys = 'blahfasel' + ESC + 'v' + 4 * ARR_L + \ 'xotest' + EX + ESC + ARR_U + 'v0xo' + ESC + 'p' wanted = '\nblah\nhello world ' # End: Github Pull Request # 134 #}}} # Test to ensure that shiftwidth follows tabstop when it's set to zero post # version 7.3.693. Prior to that version a shiftwidth of zero effectively # removes tabs. class ShiftWidthZero(_VimTest): def _extra_options_pre_init(self, vim_config): vim_config += [ "if exists('*shiftwidth')", ' set shiftwidth=0', 'endif', ] snippets = ('test', '\t${1}${0}') keys = 'test' + EX + 'foo' wanted = '\tfoo' # Test for https://github.com/SirVer/ultisnips/issues/171 {{{# # Make sure that we don't crash when trying to save and restore the clipboard # when it contains data that we can't coerce into Unicode. class NonUnicodeDataInUnnamedRegister(_VimTest): snippets = ('test', 'hello') keys = 'test' + EX + ESC + \ '\n'.join([':redir @a', ':messages', ':redir END', (":if match(@a, 'Error') != -1 | " + "call setline('.', 'error detected') | " + '3put a | ' + 'endif'), '']) wanted = 'hello' def _before_test(self): # The string below was the one a user had on their clipboard when # encountering the UnicodeDecodeError and could not be coerced into # unicode. self.vim.send( ':let @" = "\\x80kdI{\\x80@7 1},' + '\\x80kh\\x80kh\\x80kd\\x80kdq\\x80kb\\x1b"\n') # End: #171 #}}}