From a1a54079ccb90e2acb6e5b173c346f2f20fb6b88 Mon Sep 17 00:00:00 2001 From: alohaia Date: Sat, 23 Mar 2024 19:00:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20add=20support=20for=20fullwidth=20colon?= =?UTF-8?q?=20"=EF=BC=9A"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/bullets.vim | 3 ++- spec/nested_bullets_spec.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/plugin/bullets.vim b/plugin/bullets.vim index 4be95d6..84908c6 100644 --- a/plugin/bullets.vim +++ b/plugin/bullets.vim @@ -585,7 +585,8 @@ command! InsertNewBullet call insert_new_bullet() " Helper for Colon Indent " returns 1 if current line ends in a colon, else 0 fun! s:line_ends_in_colon(lnum) - return getline(a:lnum)[strlen(getline(a:lnum))-1:] ==# ':' + let l:last_char_nr = strgetchar(getline(a:lnum), strcharlen(getline(a:lnum))-1) + return l:last_char_nr == 65306 || l:last_char_nr == 58 endfun " --------------------------------------------------------- }}} diff --git a/spec/nested_bullets_spec.rb b/spec/nested_bullets_spec.rb index a20b44e..7cdc97a 100644 --- a/spec/nested_bullets_spec.rb +++ b/spec/nested_bullets_spec.rb @@ -593,6 +593,33 @@ \ti. this bullet is indented \tii. this bullet is also indented TEXT + + write_file(filename, <<-TEXT) + # Hello there + a. this is the first bullet + TEXT + + vim.command 'let g:bullets_auto_indent_after_colon = 1' + vim.edit filename + vim.feedkeys '\' + vim.type 'GA' + vim.feedkeys '\' + vim.type 'this is the second bullet that ends with fullwidth colon:' + vim.feedkeys '\' + vim.type 'this bullet is indented' + vim.feedkeys '\' + vim.type 'this bullet is also indented' + vim.write + + file_contents = IO.read(filename) + + expect(file_contents.strip).to eq normalize_string_indent(<<-TEXT) + # Hello there + a. this is the first bullet + b. this is the second bullet that ends with fullwidth colon: + \ti. this bullet is indented + \tii. this bullet is also indented + TEXT end end end