Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在生成长代码的时候无法预览 #30

Open
TroyMitchell911 opened this issue Oct 9, 2024 · 13 comments
Open

在生成长代码的时候无法预览 #30

TroyMitchell911 opened this issue Oct 9, 2024 · 13 comments

Comments

@TroyMitchell911
Copy link

如题,此时按tab可以直接出代码,但无法预览:
image

@luozhiya
Copy link
Contributor

luozhiya commented Oct 9, 2024

@TroyMitchell911

复现不了,能否提供一下最小复现配置

image

@luozhiya
Copy link
Contributor

luozhiya commented Oct 9, 2024

@TroyMitchell911

您试下 #31 看是否解决这个问题了

@TroyMitchell911
Copy link
Author

@TroyMitchell911

您试下 #31 看是否解决这个问题了

no, 工作的更遭了。

另外默认按键的C-l非常不合理,因为tmux用户通常会将C-l绑定为右移panel,以便在vim和tmux中更自然的流转。

并且默认按键补全的Tab确实很合理,但他与自动补全插件的Tab冲突了,更改任意一个都能工作的很好,但有没有一种方法可以自动判断?我看了fittencode的配置文件,感觉这应该是可以实现的。

@TroyMitchell911
Copy link
Author

一个好消息是,在我尝试您的fork之后重新切回原始分支,长代码居然可以预览了。

很神奇的事情...我没有做任何的改动

sorry for bother

@luozhiya

@luozhiya
Copy link
Contributor

luozhiya commented Oct 9, 2024

@TroyMitchell911

no, 工作的更遭了。

具体是什么地方更遭了,那个 PR 的内容其实和预览关系不大。

长代码居然可以预览了

感觉和 vim 的重绘机制有关

@luozhiya
Copy link
Contributor

luozhiya commented Oct 9, 2024

@TroyMitchell911

您再试下如下 patch 看看,显示 completion 时强制 vim 重绘

diff --git a/plugin/fittencode.vim b/plugin/fittencode.vim
index 1d1610e..11db0ae 100644
--- a/plugin/fittencode.vim
+++ b/plugin/fittencode.vim
@@ -157,6 +157,8 @@ function! CodeCompletion()
         endif
     endfor
 
+    redraw!
+
     let b:fitten_suggestion = l:generated_text
 endfunction

@TroyMitchell911
Copy link
Author

TroyMitchell911 commented Oct 9, 2024

@TroyMitchell911

no, 工作的更遭了。

具体是什么地方更遭了,那个 PR 的内容其实和预览关系不大。

不知为何生成的代码更长了,他的@符号就更多了

长代码居然可以预览了

感觉和 vim 的重绘机制有关

@TroyMitchell911
Copy link
Author

@TroyMitchell911

您再试下如下 patch 看看,显示 completion 时强制 vim 重绘

diff --git a/plugin/fittencode.vim b/plugin/fittencode.vim
index 1d1610e..11db0ae 100644
--- a/plugin/fittencode.vim
+++ b/plugin/fittencode.vim
@@ -157,6 +157,8 @@ function! CodeCompletion()
         endif
     endfor
 
+    redraw!
+
     let b:fitten_suggestion = l:generated_text
 endfunction

same

image

@TroyMitchell911
Copy link
Author

btw, vim是我自己编译的,是否与某些特性有关?

$ vim --version

❯ vim --version
...
VIM - Vi IMproved 9.1 (2024 Jan 02, 编译于 Oct  8 2024 10:42:54)
包含补丁: 1-754
编译者 troy@troy-WUJIE14-PRO
巨型版本 带 GTK3 图形界面。  可使用(+)与不可使用(-)的功能:
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       -tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
+balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
+browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     -perl              +title
+channel           +ipv6              +persistent_undo   +toolbar
+cindent           +job               +popupwin          +user_commands
+clientserver      +jumplist          +postscript        +vartabs
+clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           +python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          -ruby              +wildignore
+cursorbind        -lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con_gui    +mksession         +smartindent       +writebackup
+diff              +modify_fname      -sodium            +X11
+digraphs          +mouse             -sound             +xattr
+dnd               +mouseshape        +spell             -xfontset
-ebcdic            +mouse_dec         +startuptime       +xim
+emacs_tags        -mouse_gpm         +statusline        +xpm
+eval              -mouse_jsbterm     -sun_workshop      +xsmp_interact
+ex_extra          +mouse_netterm     +syntax            +xterm_clipboard
+extra_search      +mouse_sgr         +tag_binary        -xterm_save
-farsi             -mouse_sysmouse    -tag_old_static
...

@luozhiya
Copy link
Contributor

luozhiya commented Oct 9, 2024

@TroyMitchell911

vim是我自己编译的,是否与某些特性有关?

看编译里有 +textprop,应该没大问题

您保存下面的代码为 a.vim,然后打开 vim 执行 :source a.vim,看看是否会出现 @,如果出现的话再在 vim --clean 模式下 source一下

let s:hlgroup = 'MinimalScript'
hi def MinimalScript guifg=#808080 ctermfg=244
call prop_type_add(s:hlgroup, {'highlight': s:hlgroup})
for i in range(200)
    let line = 'line '. i
    call prop_add(line('.'), 0, {'type': s:hlgroup, 'text_align': 'below', 'text': line})
endfor

@TroyMitchell911
Copy link
Author

sry for missing

不需要vim --clean就已经正常工作了:

image

@luozhiya
Copy link
Contributor

sry for missing

不需要vim --clean就已经正常工作了:

image

没关系,大家都有忙的时候

看来直接输出是可以的 🤔

@WuJunkai2004
Copy link
Contributor

WuJunkai2004 commented Oct 12, 2024

这个应该是vim本身的一个错误,我在使用copilot的时候亦有此困扰,但是用fiitencode时还没遇到
复现方法应为:

当补全的代码超出当前页面

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants