eclipse Freemarker插件

原文地址:http://my249645546.iteye.com/blog/1856141

關於Freemarker,功能很強大,但好用的eclipse插件卻非常少。曾經用Jboss的那個插件,居然對Freemarker的部分標籤不兼容。比如${user??}編輯器居然報錯!後來發現了另一款插件:

hudson.freemarker_ide_0.9.14

這也是我目前正在使用的一款插件,個人感覺還不錯,關鍵字高亮顯示了,代碼提示也有了。只是這玩意兒在代碼提示上很不智能。比如:

1、在一個ftl文件中使用java對象時,不能提示出這個對象的屬性。如${user.name}。輸入user.後不會將name進行補全

2、在一個ftl文件中定義一個macro,另一個文件中使用這個macro時,鼠標移上去,按住ctrl鍵不能直接定位帶該macro定義的地方。這導致,實際開發中要找某個macro的代碼非常麻煩,還得動用eclipse的搜索功能!

 

今天本來想對這個插件進行二次開發,查看其源代碼時,居然發現其對上述功能是支持的,只是需要配置!

於是到網上找了一大圈,終於搞定了,現分享給大家。

 

在項目根目錄新建一個.freemarker-ide.xml(注意文件名前面有一個".",並與.project在同一目錄)。代碼如下:

Xml代碼  收藏代碼
  1. <config>  
  2.     <context-values>  
  3.         <!-- 該配置可以使path對應的文件中,如果使用key對象時,會自動補全其對應的java屬性(通配符無效) -->  
  4.         <resource path="src/main/webapp/WEB-INF/template/userList.ftl">  
  5.             <value key="loan" object-class="net.domain.UserDO"/>  
  6.         </resource>  
  7.         <!-- 其餘resource配置…… -->  
  8.     </context-values>  
  9.     <macro-library>  
  10.         <!-- 該配置可以使namespace命名空間下的所有macro、function自動補全 -->  
  11.         <entry namespace="component" path="src/main/webapp/WEB-INF/template/macro/component/component.ftl" project="web2.0" type="file"/>  
  12.         <!-- 其餘macro-library配置…… -->  
  13.     </macro-library>  
  14. </config>  

 

現在,在userList.ftl文件中,我們只需要輸入${user.}就會自動彈出其java類中定義的屬性了。

再將原來導入componet.ftl的命令

Xml代碼  收藏代碼
  1. <#include "/macro/component/component.ftl">  

  改爲:

Xml代碼  收藏代碼
  1. <#import "/macro/component/component.ftl" as component>  

 這樣,我們就爲component中的macro定義了一個命名空間 component(注意命名空間的名字要跟配置中的一樣)。現在我們使用component中的macro,只需要輸入"<@component."就會自動彈出component.ftl文件中定義的macro、function。而且將鼠標移上去,點擊可以直接跳到定義的地方!

 

 

注意:如果 你在.freemarker-ide.xml中配置了你正在編輯的ftl文件,需要將文件關閉後,重新打開,編輯器才能讀取到配置信息,代碼提示 才能生效!

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章