SublimePHPNinJaManualSublime 函數(shù)手冊提示
SublimePHPNinJaManual 是 Sublime 中的函數(shù)手冊提示,中文,其他語言的可以通過命令生成
由來
自己因為sublime中沒有一個好的php函數(shù)提示所苦惱。曾經(jīng)在Sublime的thinkphp插件里實現(xiàn)過一次,那個時候用的是netbeans 里 php提示的文件庫,然后顯示也不大好看。一直以為sublime 沒法做到好看的ui 因為api少。
前幾天發(fā)現(xiàn)了國人的自己做的Ctranslator tool
這不就是我想要的嗎?看源碼發(fā)現(xiàn)是用了一個開源的庫 StyledPopup。 用html靈活多了。
而后,自己其實一直用的chrome 瀏覽器的插件,PHP NanJa Manual。支持各種語言,也有示列,就是每次寫代碼開瀏覽器太麻煩了。由于他提供一個開源庫PHP doc parser,可以將php官方手冊轉(zhuǎn)換成json文件,自己就有了移植的想法。 所以名字就參考了他的,希望不要告侵權(quán)。 由于son文件過于大,python沒有緩存機制(或許我不知道),我就用thinkphp 轉(zhuǎn)成了一個db。2個表 fun、funlist fun存 函數(shù)名, funlist存 函數(shù)名和對應(yīng)son數(shù)據(jù)。
安裝
使用Sublime Text 3 Package Control 插件(http://wbond.net/sublime\_packages/package\_control) 按 CTRL + SHIFT + P 后 找到 Package Control: Install Package 然后回車。列表中找到PhpNinJaManual這個插件(等審核過了會有)。
或者直接 git clone 到你的 Sublime Text 3 packages 目錄 (usually located at /Sublime Text 3/Packages/)。記得把SublimePHPNinJaManual 改為PhpNinJaManual。pac 安裝的應(yīng)該沒這個問題。
使用說明
選中要查看的php函數(shù)名,然后右鍵會發(fā)現(xiàn) “查看函數(shù)說明”菜單 ,點擊后, 會彈出函數(shù)說明浮層
如果想配快捷鍵,只需要你自定義快捷鍵里 commond 寫 show_php_document就行了,這個參考Sublime手冊快捷鍵,自己定義一個就好了。比如 f1或者 其他。
關(guān)于手冊其他語言的生成
拿英文 en 舉例。 先到 手冊解析器主頁:https://github.com/martinsik/php-doc-parser 找一個目錄 寫上composer.json 內(nèi)容:
{
"require": {
...
"martinsik/php-doc-parser": "~2.0"
}
}
然后 composer.phar install 也可能 composer install 裝好后, 當(dāng)前目錄vendor/bin 下會有 執(zhí)行文件,然后
vendor/bin/doc-parser help parser:run 生成好這2個json文件后, 復(fù)制到,插件目錄的 App/Runtime/Data里,
到時候就不是zh 而是en。 然后 命令行切換到插件目錄里執(zhí)行
會提示多少函數(shù)導(dǎo)入了。我沒生成英文的,所以是0。
未來特性
可能會用PHPConnector 重構(gòu)下。 可能會把示列加上,不過數(shù)據(jù)庫體積就更大了,而且可能顯示會更長
注意點
-
有的函數(shù)因為返回了&$count 這類Sublime插件語言中的關(guān)鍵字導(dǎo)致解析不了向后的html字符串
。暫時不知道怎么修復(fù) 已經(jīng)被作者告知了方法,已修復(fù)。PHP返回那邊轉(zhuǎn)義了'&'符號 √
由于那個浮層組件不支持設(shè)定寬高,目前長內(nèi)容會出現(xiàn)滾動條,只能等作者解決了,我會向他提Issue的。 作者也告知了有個寬度的參數(shù) ,我改了下插件,設(shè)了700 以后提供配置吧。反正我用str_replace函數(shù)測試足夠了。√
解析手冊用的是PHP,需要你們的 命令行里php 可用,所有, 最好檢查下自己的系統(tǒng)環(huán)境變量或者聰明的里 php -v 能不能用
參數(shù)解釋前添加了 返回類型顯示和高亮,另外函數(shù)名可以點擊 去PHP官網(wǎng)查看。
如果你想定義輸出的格式,和樣式可以去看插件目錄里的app Doc控制器的find方法。和find.html 模板。
find.html
<style>
a{
color: #62D9EF;
}
</style>
<span class="keyword">{$fun.params.0.ret_type}</span> <a class="entity name function" href="{$url}">{$fun.params.0.name}</a> (<span class="comment line"><volist name="fun.params.0.list" id="i">
[ <neq name="key" value="0">,</neq><span class="keyword">{$i.type}</span> <span class="string quoted">{$i.var}</span> ]' {$i['beh']? $i['beh']:$i['type']} {$i.var}
</volist></span>)
<p>{$fun.long_desc}</p>
<p>參數(shù): <br>
<volist name="fun.params.0.list" id="i">
{$i.var} - {$i['desc']? $i['desc']: '暫無說明'} <br>
</volist>
</p>
直接改HTML和控制器后直接調(diào)試插件的效果太他媽爽了,可惜我沒有配色天賦。曾經(jīng)嘗試body白色,想弄個清淡的浮層,發(fā)現(xiàn)body外還有邊距。反正大家可以自由DIY。配出適合自己主題的樣式??梢愿嬖V我,我以后,可以動態(tài)的針對不同主題調(diào)用不同樣式,達到顯示最優(yōu)化。
