zl程序教程

您现在的位置是:首页 >  后端

当前栏目

关于eclipse的代码提示Content Assist

eclipse代码 关于 提示 content
2023-09-11 14:16:28 时间

最近安装了Eclipse 2019-03版本,发现自动提示太奇怪,查了查发现相关资料不多,连查带试研究了下,好像是这个版本不自带Code Recommenders插件了,最好装一下,里面的字符片段匹配挺好用的。

打开Help菜单里的Marketplace搜索Code Recommenders安装;

Code Recommenders里面带上面那个Snipmatch功能;

它的片段匹配就像这种(eclipse自己的不能这样匹配):

 

ok,下面研究下Content Assist,打开Window>>Preferences,选java>>Editor>>Content Assist;

先看一下Content Assist下面的Advanced。(后面带Code Recommenders的是插件的)

代码提示有两种,一种是在任意位置敲“Alt+/”打开提示,一种是输入“.”后的自动提示。不管用哪种方式打开,首次打开的页面就是default页(使用Default Proposal Kinds里的勾选的匹配),eclipse会把Default里勾选的全都匹配然后都显示在default页里。打开default页后再次按“Alt+/”会轮询到下一页(defalut页下面的“Press‘Alt+/’to show java Proposals”提示下一页是啥)。

轮询顺序是根据下面那块Content Assist cycling里的配置,轮询勾选的并按照从上到下顺序,可以手动Up和Down调整顺序,轮询一遍又回到default页继续重复轮询。

 

下面看下Content Assist,分三块Insertion、Sortion and Filtering、Auto Activation。

1.Insertion

a.插入的填充方式

勾选Completion inserts,插入提示的时候直接插入,后面字符后移:

插入后后面的ddd不覆盖。

勾选Completion overwrites,插入提示的时候把后面字符覆盖掉(后面字符有底色):

插入后后面字符都覆盖了。

有提示页的时候按住Ctrl会临时切换到另一个选项,然后选提示后回车插入。

b.候选匹配只剩一个的时候是否自动填充

勾选,当只剩一个匹配的时候Alt+/会直接填充上去:

按alt+/后

c.全部候选匹配前面字符都一致的时候是否填充一致的字符

测试:

不勾选按Alt+/后,不会填充show里的ow;

勾选后按Alt+/后sh后面多了ow;

d.是否只在敲回车后填充

不勾选按“(”、“空格”、“回车”都会填充,勾选只有按“Enter”才填充。

e.导入方式

不勾选,全名方式:

按Alt+/回车

勾选,使用import导入:

Alt+/并回车后

f.填充的方法参数填充方式

勾选Insert parameter names,将方法定义的参数名填入:

回车

勾选Inser best guessed arguments,将从代码上下文找最匹配的参数填入,找不到会填入0或者null:

提示并回车

 

2.Sorting and Filetering

a.匹配候选排序方式

relevance按相关性排(通常用这个);

alphabetically按照字母表顺序排;

b.驼峰匹配

测试:

勾选匹配:

Alt+/匹配了X___Y___(如果此时也勾选了填充common Prefixes会填充成XYy)

c.匹配子字符串

勾选:

不勾选:

这里用Code Recommenders插件比较好用。

d.是否隐藏不可访问的匹配

不勾选会把私有的等访问不到的匹配也显示:

e.是否隐藏不建议使用的引用

目前发现,只是会隐藏java自己的带@Deprecated标签的项,比如finalize()方法;

 

3.auto activation

a.启用自动提示

b.延迟多少毫秒自动提示

c.啥时开始自动提示

输入“.”后自动提示default页,可以改成“.qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM”,在输入“.”或者任意字母后都自动提示(不用老按Alt+/了)

d.啥时开始文档注释的自动提示

默认是在文档注释里按“@”或者“#”的时候:

 

 

2020/5/15:不知啥时起我的Eclipse里Code Recommenders安装不上了。

今天从网页上查资料偶然发现一个叫Codota的插件,搞下来试了试。

去Eclipse的marketplace直接搜Codota是搜不到的:

点击Browse for more solutions继续搜索:

安装完效果是这样的:

安装完Codota会自动帮你设置Content Assist:

 

 

 

参考:

https://www.oschina.net/question/876638_2304663

https://stackoverflow.com/questions/4824168/what-does-insert-common-prefixes-automatically-do-in-eclipse