idea live template高级知识, 进阶
为了解决用一个命令(宏)给方法,类,js方法添加注释,经过几天的研究.终于得到结果了.
实现的效果如下:
给Java中的method添加方法:
/** * * @Method : addMenu * @Description : * @param menu : * @return : cn.yiyizuche.common.base.ResultMsg * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:17:42 * */public ResultMsg addMenu(Menu menu){ ResultMsg result = null;return result; }
给 Java class 添加注释:
/** * * @Project : 壹壹OA * @Package : cn.yiyizuche.common.ou.menu.controller * @Class : MenuController * @Description : * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:15:32 * @version : V1.0.0 * @Copyright : 2017 yizukeji Inc. All rights reserved. * @Reviewed : * @UpateLog : Name Date Reason/Contents * --------------------------------------- * *** **** **** * */public class MenuController { }
给js 的方法添加注释
/** * * @Method : standardShowBatchCheckBox * @Description : * @return : * @author : Rush.D.Xzj * @CreateDate : 2017-06-12 星期一 18:15:21 * */function standardShowBatchCheckBox(jspElement, dataList, max, valueIdFunction, textFunction, selectedFunction) { }
现在把答案公布如下
Abbreviation:
cmj
Template text(注1):
** *$context$ */
Edit variables:
$context$的代码(主要代码)如下:
groovyScript("def methodName = \"${_1}\"; def jsMethodName = \"${_2}\"; def outputMethodName = \"${_3}\"; def outputDesc = \"${_4}\"; def outputParams = \"${_5}\"; def outputAuthor = \"${_6}\"; def outputReturnType = \"${_7}\"; def outputDateTime = \"${_8}\"; def outputPackage = \"${_9}\"; def outputClass = \"${_10}\"; def outputClassOtherInfo = \"${_11}\"; def outputProject = \"${_12}\"; def outputVersion = \"${_13}\"; def outputJsMethodName = \"${_14}\"; def outputJsReturnType = \"${_15}\"; def result = ''; if (methodName != 'null') { result += '\\n'; result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; result += ' *'; return result; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; result += ' *'; return result; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; result += ' *'; return result; } ", methodName(), jsMethodName(), groovyScript("def methodName = \"${_1}\"; def result = ' * @Method : ' + methodName + '\\n'; return result;", methodName()), groovyScript("def result = ' * @Description : ' + '\\n'; return result;"), groovyScript("if(\"${_1}\".length() == 2) { return ''; } else { def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { result+=' * @param ' + params[i] + ' : ' + '\\n' }; return result;}", methodParameters()), groovyScript("def author = 'Rush.D.Xzj'; def result = ' * @author : ' + author + '\\n'; return result;"), groovyScript("def returnType = \"${_1}\"; def result = ' * @return : ' + returnType + '\\n'; return result;", methodReturnType()), groovyScript("def date = \"${_1}\"; def time = \"${_2}\"; def result = ' * @CreateDate : ' + date + ' ' + time + '\\n'; return result;", date("yyyy-MM-dd E"), time("HH:mm:ss")), groovyScript("def currentPackage = \"${_1}\"; def result = ' * @Package : ' + currentPackage + '\\n'; return result;", currentPackage()), groovyScript("def className = \"${_1}\"; def result = ' * @Class : ' + className + '\\n'; return result;", className()), groovyScript("def result = ' * @Copyright : 2017 yizukeji Inc. All rights reserved.' + '\\n'; result += ' * @Reviewed : ' + '\\n'; result += ' * @UpateLog : Name Date Reason/Contents' + '\\n'; result += ' * ---------------------------------------' + '\\n'; result += ' * *** **** **** ' + '\\n'; return result;"), groovyScript("def result = ' * @Project : 壹壹OA' + '\\n'; return result;"), groovyScript("def result = ' * @version : V1.0.0' + '\\n'; return result;"), groovyScript("def jsMethodName = \"${_1}\"; def result = ' * @Method : ' + jsMethodName + '\\n'; return result;", jsMethodName()), groovyScript("def result = ' * @return : ' + '\\n'; return result;"))
使用如下:
在xx.java或者 xx.js中输出(注2):
/cmj
后 按 tab键(此键是默认的,可以更改成其他的)
注1 和注2
也可以换成第二种方法(网上大部分的方法):
Template text
* *$context$ */
跟注1比较第一行少了一个*,
因此注2就是变成了:
/*cmj
我感觉用我的方法比第二种方法好.
Edit Variable中代码详解
首先我分解了如下的 10几个函数(是小函数):
// 输出方法名groovyScript("def methodName = \"${_1}\"; def result = ' * @Method : ' + methodName + '\\n'; return result;", methodName()) // 输出描述 groovyScript("def result = ' * @Description : ' + '\\n'; return result;") // 输出参数列表的子函数 groovyScript("if(\"${_1}\".length() == 2) {return ''; } else { def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ' : ' + '\\n'}; return result;}", methodParameters()) // 输出 作者的 子函数 这里可以改作者 groovyScript("def author = 'Rush.D.Xzj'; def result = ' * @author : ' + author + '\\n'; return result;") // 输出 返回值的 子函数 groovyScript("def returnType = \"${_1}\"; def result = ' * @return : ' + returnType + '\\n'; return result;", methodReturnType()) // 输出 日期的 字函数, 这个可以更改日期格式 groovyScript("def date = \"${_1}\"; def time = \"${_2}\"; def result = ' * @CreateDate : ' + date + ' ' + time + '\\n'; return result;", date("yyyy-MM-dd E"), time("HH:mm:ss")) // 输出Project groovyScript("def result = ' * @Project : 壹壹OA' + '\\n'; return result;") // 输出package groovyScript("def currentPackage = \"${_1}\"; def result = ' * @Package : ' + currentPackage + '\\n'; return result;", currentPackage()) // 输出class groovyScript("def className = \"${_1}\"; def result = ' * @Class : ' + className + '\\n'; return result;", className()) // 输出copyright/reviewd/updatelog groovyScript("def result = ' * @Copyright : 2017 yizukeji Inc. All rights reserved.' + '\\n'; result += ' * @Reviewed : ' + '\\n'; result += ' * @UpateLog : Name Date Reason/Contents' + '\\n'; result += ' * ---------------------------------------' + '\\n'; result += ' * *** **** **** ' + '\\n'; return result;") // 输出version groovyScript("def result = ' * @version : V1.0.0' + '\\n'; return result;") // 输出jsMethodName groovyScript("def jsMethodName = \"${_1}\"; def result = ' * @Method : ' + jsMethodName + '\\n'; return result;", jsMethodName()) // 输出 js 的return groovyScript("def result = ' * @return : ' + '\\n'; return result;")
然后在主要代码中,需要把上述的10几个函数当做参数供给主要代码使用.
判断是函数,类,js函数主要是通过如下的2个内置变量来实现的:
methodName() jsMethodName()
当methodName()不为空的时候, 生成 方法的 注释
当jsMethodName()不为空的时候, 生成 js方法的注释
否则生成类的注释
所以上述的代码可以简单的做如下的归类了:
获取相关参数:
def methodName = \"${_1}\"; def jsMethodName = \"${_2}\"; def outputMethodName = \"${_3}\"; def outputDesc = \"${_4}\"; def outputParams = \"${_5}\"; def outputAuthor = \"${_6}\"; def outputReturnType = \"${_7}\"; def outputDateTime = \"${_8}\"; def outputPackage = \"${_9}\"; def outputClass = \"${_10}\"; def outputClassOtherInfo = \"${_11}\"; def outputProject = \"${_12}\"; def outputVersion = \"${_13}\"; def outputJsMethodName = \"${_14}\"; def outputJsReturnType = \"${_15}\"; def result = '';
判断是哪一种类型的注释(代码片段2):
if (methodName != 'null') { result += '\\n'; result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; result += ' *';return result; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; result += ' *';return result; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; result += ' *';return result; }
这下就可以了.就把整个这么难看(groopscript搞的?)代码整理的比较清晰了.
我还有如下的几个疑惑/问题需要解决, 如果有朋友能给我答案那就好了.
问题1. 不知道可以通过什么方法获取js方法中的参数列表
问题2. 代码片段2中如果我改成了:
result += '\\n';if (methodName != 'null') { result += outputMethodName; result += outputDesc; result += outputParams; result += outputReturnType; result += outputAuthor; result += outputDateTime; } else if (jsMethodName != 'null') { result += '\\n'; result += outputJsMethodName; result += outputDesc; result += outputJsReturnType; result += outputAuthor; result += outputDateTime; } else { result += '\\n'; result += outputProject; result += outputPackage; result += outputClass; result += outputDesc; result += outputAuthor; result += outputDateTime; result += outputVersion; result += outputClassOtherInfo; } result += ' *';return result;
会出现如下的错误:
startup failed: Script1.groovy: 1: expecting EOF, found 'result' @ line 1, column 1036. lt += outputClassOtherInfo; } result += ^ 1 error
问题3: 不知道怎么获取Override方法对应的接口方法(父类方法)
关于问题3: 实际上给这种方法加注释是没有意义的,具体可以参考:
但是如果非要加该怎么去判断.
最后可以把 缩写(abbreviation) 改成: *
这样以后只需要输入:
/*
然后按一下 tab 键就出现结果了
哈哈!!!
Atas ialah kandungan terperinci idea live template高级知识, 进阶. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan Carian Terperinci Baidu Enjin carian Baidu kini merupakan salah satu enjin carian yang paling biasa digunakan di China. Ia menyediakan pelbagai fungsi carian, salah satunya ialah carian lanjutan. Carian lanjutan boleh membantu pengguna mencari maklumat yang mereka perlukan dengan lebih tepat dan meningkatkan kecekapan carian. Jadi, bagaimana untuk menggunakan carian lanjutan Baidu? Langkah pertama ialah membuka halaman utama enjin carian Baidu. Pertama, kita perlu membuka laman web rasmi Baidu, iaitu www.baidu.com. Ini adalah pintu masuk ke carian Baidu. Dalam langkah kedua, klik butang Carian Terperinci. Di sebelah kanan kotak carian Baidu, terdapat

Langkah konfigurasi: 1. Buka IntelliJ IDEA dan masukkan projek 2. Klik "Run" di menu atas 3. Pilih tanda tambah di sudut kiri atas dan pilih "Tomcat Server" > "Local"; Pilihan "Server", Klik "Configure" dan pilih direktori pemasangan Tomcat 5. Dalam pilihan "Deployment", klik tanda tambah untuk menambah projek anda 6. Simpannya dalam "Sebelum pelancaran";

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

IDEA (IntelliJIDEA) ialah persekitaran pembangunan bersepadu yang berkuasa yang boleh membantu pembangun membangunkan pelbagai aplikasi Java dengan cepat dan cekap. Dalam pembangunan projek Java, menggunakan Maven sebagai alat pengurusan projek boleh membantu kami mengurus perpustakaan bergantung, membina projek, dsb. Artikel ini akan memperincikan langkah asas tentang cara membuat projek Maven dalam IDEA, sambil memberikan contoh kod khusus. Langkah 1: Buka IDEA dan cipta projek baharu Buka IntelliJIDEA

Artikel ini akan membimbing anda untuk membetulkan ralat log masuk Xbox 0x87dd0019, yang menyebabkan isu tamat masa sambungan apabila anda cuba menyambung ke Xbox Live atau log masuk ke Xbox One. Apakah kod ralat 0x87e00019 pada Xbox? Jika anda menemui kod ralat 0x87e00019 semasa memasang atau mengemas kini permainan pada konsol Xbox anda, ini bermakna pemacu keras Xbox anda mungkin kekurangan ruang storan atau hampir penuh. Untuk menyelesaikan masalah ini, anda perlu mengosongkan sedikit ruang storan. Pada masa yang sama, anda juga harus menyemak status perkhidmatan Xbox Live, kerana ralat ini mungkin disebabkan oleh isu pelayan Xbox. Bagaimana untuk membetulkan ralat log masuk Xbox 0x87dd0019 menggunakan petua ini

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Kaedah konfigurasi: 1. Buka IntelliJ IDEA, pilih "Edit Konfigurasi" daripada menu lungsur pada bar alat 2. Masukkan tetingkap baharu, klik tanda "+", masukkan menu lungsur, dan kemudian pilih "Setempat " dalam "Pelayan Tomcat"; 3. Dalam antara muka baharu, pilih direktori pemasangan Tomcat. Selepas memilih direktori, klik "OK"; 4. Konfigurasikan pelayar untuk memulakan Tomcat.

Langkah-langkah untuk melihat kod sumber Tomcat dalam IDEA: 1. Muat turun kod sumber Tomcat; . Pembelajaran dan pengemaskinian berterusan 7. Gunakan alat dan pemalam 8. Mengambil bahagian dalam komuniti dan menyumbang. Pengenalan terperinci: 1. Muat turun kod sumber Tomcat Anda boleh memuat turun pakej kod sumber dari laman web rasmi Apache Tomcat Biasanya pakej kod sumber ini dalam format ZIP atau TAR, dsb.
