最近打算给xmake写一些IDE和编辑器的集成插件,发现vscode的编辑器插件比较容易上手的,就先研究了下vscode的插件开发流程,并且完成了xmake-vscode插件的开发。
我们先来看几张最后的效果图:
语法高亮和自动补全
状态栏
继续阅读 »
content
{:toc}
注:此处为镜像文档,最新在线文档请看:http://xmake.io/#/zh/plugins
插件开发
简介
XMake完全支持插件模式,我们可以很方便的扩展实现自己的插件,并且xmake也提供了一些内建的使用插件。
我们可以执行下 xmake -h 看下当前支持的插件:
Plugins:
l, lua Run the lua script.
m, macro Run the given macro.
doxygen
继续阅读 »
xmake在开发插件脚本的时候,除了可以使用lua内置的print进行终端输出外,还可以通过另外一个接口:cprint实现终端的色彩高亮输出
例如:
lua
cprint('${bright}hello xmake')
cprint('${red}hello xmake')
cprint('${bright green}hello ${clear}xmake')
cprint('${blue onyellow underline}hello xmake${clear}')
cprint('${red}hello ${magenta}xmake')
cprint('${cyan}he
继续阅读 »
xmake通过import接口,可以在自定义脚本中导入各种内置类库和扩展类库模块,使得xmake的插件开发具有更多的灵活性,提供更丰富的功能。
我们先看下,目前xmake提供的一些类库:
.
├── _g.lua
├── assert.lua
├── catch.lua
├── coroutine.lua
├── debug.lua
├── finally.lua
├── format.lua
├── ifelse.lua
├── import
│ └── core
│ ├── base
│ │
继续阅读 »
import的主要用于导入xmake的扩展类库以及一些自定义的类库模块,一般用于 自定义脚本(on_build, on_run ..)、插件开发、模板开发、平台扩展、自定义任务task等地方。
导入机制如下:
优先从当前脚本目录下导入
再从扩展类库中导入
导入的语法规则:
基于.的类库路径规则,例如:
导入core核心扩展模块
```lua
import("core.base.option")
import("core.project")
import("core.project.task")
import("core")
function main()
-- 获取参数选项
继续阅读 »
我们继续以之前讲解的hello插件为基础,现在为其增加参数配置选项,并且指定一个独立的脚本文件中进行开发,这样我们就可以写一些更复杂的插件
```lua
-- 定义一个名叫hello的插件任务
task("hello")
-- 设置类型为插件
set_category("plugin")
-- 插件运行的入口,这里指定main,说明从当前插件目录的main.lua脚本中加载插件入口
on_run("main")
-- 设置插件的命令行选项,这里没有任何参数选项,仅仅显示插件描述
set_menu({
-- usage
继续阅读 »
xmake从v2.0开始,全面支持插件模式,我们可以很方便的扩展实现自己的插件,并且xmake也提供了一些内建的使用插件
我们可以执行下 xmake -h 看下当前支持的插件:
Plugins:
l, lua Run the lua script.
m, macro Run the given macro.
doxygen Generate the doxygen document.
继续阅读 »
引言
{% blockquote hexo.io https://hexo.io/zh-cn/docs/plugins.html 插件 %}
Hexo 有强大的插件系统,使您能轻松扩展功能而不用修改核心模块的源码。在 Hexo 中有两种形式的插件:
脚本(Scripts)
如果您的代码很简单,建议您编写脚本,您只需要把 JavaScript 文件放到 scripts 文件夹,在启动时就会自动载入。
插件(Packages)
如果您的代码较复杂,或是您想要发布到 NPM 上,建议您编写插件。首先,在 node_modules 文件夹中建立文件夹,文件夹名称开头必须为 hexo-,如此一来 Hexo 才会在启动时载入否则 He
继续阅读 »
task是xmake 2.0开始新增的特性,也是插件开发的核心,在 插件开发之hello xmake 中我们简单介绍了下task的定义和使用
当然task不仅可以用来写插件,而且还可以写一些简单的自定义任务。。
我们先看下一个简单task实现:
```lua
-- 定义一个名叫hello的task任务
task("hello")
-- task运行的入口
on_run(function ()
-- 显示hello xmake!
print("hello xmake!")
end)
```
这是一个最简单的task,相比插件task,它少了对 set
继续阅读 »
Android 插件化框架 DroidPlugin 学习笔记
上一篇我们对 DL 框架的思路进行了一些总结,总的来说就是通过一个代理的 activity 作为傀儡来控制插件 activity 的生命周期,通过 AssetManager 的隐藏方法 addAssetPath 来解决加载资源的问题。但是同时,DL 框架存在的缺点就是比较依赖 that 语法,开发插件程序和主程序的代码需要单独区分。在这两点问题上,360 助手的插件化框架 DroidPlugin 似乎解决的更好一些,这个框架基本 Hook 了系统所有的 Service ,欺骗了系统大部分的 API ,编写插件程序和开发普通 app 没有任何区别,这是 DroidPlug
继续阅读 »