aardio 代码格式化工具

https://gitee.com/pengchenggang/aardio---code-formatting-tool

修改内容

1 代码进行了一定的修改,默认ctrl+t 改成了 ctrl+s

2 原先是通过选择进行格式化,全部保存的时候,会自动全选再保存。逻辑都删除了,改成直接全部格式化保存。这样就不闪了,代码如下。

bug:这个快捷键是全局拦截

为了修复这个bug,只好换个都不用的快捷键,最后选定了 ctrl + `

//aardio代码格式化工具
//风行者 制作 v21.0
//感谢 游戏 提供的beautifier.min.js 和 script2 库源码 import ide;
import gdi;
import winex;
import win.ui;
import win.inputBox;
import web.script.json
import web.script2;
import fonts.fontAwesome; var hwndStatusBar = winex.findEx(ide.getMainHwnd(), , "Afx\:RibbonStatusBar", "");
var hwnd = winex.findEx(hwndStatusBar, , , "aardio代码格式化");
if (hwnd) return; win.modifyStyle(hwndStatusBar, , 0x2000000 /*_WS_CLIPCHILDREN*/ );
/*DSG{{*/
winform = win.form(text="aardio代码格式化";right=19;bottom=20;border="none";exmode="none";max=false;min=false;mode="child";parent=hwndStatusBar)
winform.add(
plus={cls="plus";left=0;top=0;right=20;bottom=23;bgcolor=-28642;color=16777215;font=LOGFONT(h=-16);iconStyle={font=LOGFONT(h=-20;name='FontAwesome')};iconText='\uF121';notify=1;z=1}
)
/*}}*/ winform.plus.skin({
background = {
active = 0xFF0081FF;
default = 0xFF1E90FF;
hover = 0xFF339AFF
};
color = {
default = 0xFFFFFFFF
}
}) var ws = web.script2(); ws.addCode("window=this;");
jsCode = $ "\beautifier.min.js" ws.addCode(jsCode); var opt = {
indent_char = " ";
indent_size = "4";
space_before_conditional = true; //Space before conditional: "if(x)" / "if (x)"
brace_style = "end-expand"; //"collapse","expand","end-expand","none"
keep_array_indentation = true; //Keep array indentation?
end_with_newline = true; //End script and style with newline?
comma_first = false; //Use comma-first list style?
break_chained_methods = false; //Break lines on chained methods?
indent_scripts = "keep"; //HTML <style>, <script> formatting:"keep","normal","separate"
e4x = false; //Support e4x/jsx syntax
unescape_strings = false; // Unescape printable chars encoded as \xNN or \uNNNN?
indent_inner_html = false; //Indent <head> and <body> sections?
jslint_happy = false; // Use JSLint-happy formatting tweaks?
indent_empty_lines = true; //Keep indentation on empty lines?
//Remove all extra newlines: preserve_newlines = false;max_preserve_newlines = "-1";
preserve_newlines = true;
max_preserve_newlines = "2"; //Allow unlimited newlines between tokens: max_preserve_newlines = "0"
wrap_line_length = "0";
} import fsys.table
var fTab = fsys.table("/key.table") winform.plus.oncommand = function(id, event) { // 编辑控件
var codeEditor = ide.getActiveCodeEditor()
if (!codeEditor) return; // 返回编辑代码
var code = ide.getActiveCode()
if (!code) return; var text = codeEditor.selText var formatCode var sSel, eSel = codeEditor.getsel()
if (#text) {
formatCode = ws.json.beautifier.aardio(text, opt);
}
else {
formatCode = ws.json.beautifier.aardio(code, opt);
//codeEditor.selectAll()
}
/*
//space_before_conditional = false; 时使用
if (!opt.space_before_conditional) {
formatCode = string.replace(formatCode, "@@) {", "){")
} */
codeEditor.text = formatCode;
//设置选区文本
//codeEditor.selText = formatCode; codeEditor.setFocus(eSel: sSel);
ide.save()
/*
var path = ide.getActiveDocPath()
if (#path and io.exist(path)) {
//备份
ide.save()
var sp = io.splitpath(path)
fTab.load() if (fTab.path) {
var fpath
if string.endWith(fTab.path, "\") {
fpath = fTab.path
}
else {
fpath = fTab.path + "\"
} string.save(fpath + sp.name + "_old" + sp.ext, code)
}
else {
string.save(sp.dir + sp.name + "_old" + sp.ext, code)
} }
*/ } var intervalId = winform.setInterval(
100,
function(hwnd, msg, id, tick) { var chwnd = winex.findEx(hwndStatusBar, , "@msctls_updown32") if (chwnd) {
var x, y = win.getPos(chwnd) if (x != winform.xtmp) {
winform.setPos(x - winform.width - (85 * gdi.getDpiScale()), 2)
winform.xtmp = x;
winform.redraw();
}
}
}) winform.onClose = function(hwnd, message, wParam, lParam) {
winform.clearInterval(intervalId);
} import win.ui.menu;
winform.plus.wndproc = function(hwnd, message, wParam, lParam) { select (message) {
case 0x205 /*_WM_RBUTTONUP*/ {
//鼠标右键弹起,下面获取坐标
var x, y = win.getMessagePos(lParam);
var menu = win.ui.popmenu(winform);
menu.add("退出", function() {
winform.close()
}) menu.popup(x, y);
return true;
}
}
} import win.ui.tooltip; // 在所有者窗口 winform 上创建 tooltip 提示控件
var tooltipCtrl = win.ui.tooltip(winform); // 添加一个自动模式的控件提示(TOOLINFO 对象,简称 tool )
var toolInfoPlus = tooltipCtrl.addTool(winform.plus, "格式化代码") /*快捷键设置{{*/ if (io.exist("/key.table")) {
fTab.load()
//定义快捷键Ctrl+T
hkid = winform.reghotkey(function(id, mod, vk) {
winform.plus.oncommand();
}, fTab.k, fTab.v);
}
else { inputbox = win.inputBox(winform.hwnd) inputbox.input.close()
inputbox.add({
hotkey = {
cls = "hotkey";
left = 20;
top = 46;
right = 423;
bottom = 71;
dl = 1;
dt = 1;
edge = 1;
password = password;
z = 3
}
})
inputbox.text = "格式化代码快捷键设置"
inputbox.info.text = "请在下面输入快捷键:"
inputbox.hotkey.sethotkey(2, 84) inputbox.btnOk.oncommand = function(id, event) {
if (inputbox.hotkey.gethotkey()) {
var k1, v1 = inputbox.hotkey.gethotkey() // 定义快捷键
hkid = winform.reghotkey(function(id, mod, vk) {
winform.plus.oncommand();
}, k1, v1); //保存值
fTab.mixin(
k = k1; v = v1;);
}
else {
//使用默认快捷键Ctrl+T
hkid = winform.reghotkey(function(id, mod, vk) {
winform.plus.oncommand();
}, 0x2 /*_MOD_CONTROL*/ , 84); //保存值
fTab.mixin(
k = 2; v = 84;);
} inputbox.endModal(); }; inputbox.doModal() } /*}}*/ winform.show()
win.loopMessage();

aardio 代码格式化 自动保存 自定义 ctrl + s bug:这个快捷键是全局拦截的更多相关文章

  1. [转]Xcode的快捷键及代码格式化

    Xcode比较常用的快捷键,特别是红色标注的,很常用.1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有 ...

  2. Xcode 快捷键及代码格式化

    按住apple键点击类名就可以定位到这个类中查看相关定义(在日后的开发中我们会经常这么来做,毕竟要记住iOS开发中所有的API是不现实的,有些API我们可以通过这种方法来查找) PS:下面都是网上百度 ...

  3. Xcode的快捷键及代码格式化

    1. 文件CMD + N: 新文件 CMD + SHIFT + N: 新项目CMD + O: 打开 CMD + S: 保存 CMD+OPt+S:保存所有文件 CMD + SHIFT + S: 另存为 ...

  4. phpstorm2019.1 实现保存(ctrl+s)同时格式化代码

    1.选择Edit(编辑)->Macros(宏)->Start Macro Recording(开始录制宏),如下图: 2.直接按想要录制的快捷键,先按Ctrl+ALT+L,然后键盘按Ctr ...

  5. Myeclipse学习总结(3)——Myeclipse中的代码格式化、注释模板及保存时自动格式化

    设置Myeclipse中的代码格式化.注释模板及保存时自动格式化 1:设置注释的模板: 下载此模板:  codetemplates.xml This XML file does not appear ...

  6. vscode保存代码,自动按照eslint规范格式化代码设置

    # vscode保存代码,自动按照eslint规范格式化代码设置 编辑器代码风格一致,是前端代码规范的一部分.同一个项目,或者同一个小组,保持代码风格一致很必要.就拿vue项目来说,之前做的几个项目, ...

  7. vscode代码格式化快捷键及保存时自动格式化

    一.实现vs code中代码格式化快捷键:[Shift]+[Alt]+ F 二.实现保存时自动代码格式化: 1)文件 ------.>[首选项]---------->[设置]: 2)搜索  ...

  8. prettier+ts+eslint+vscode配置代码保存自动格式化,自动remove unsed declaration,delete no-unused-imports

    每天都要开心(▽)哇: 以这个项目为案例 下面是项目的基本情况 What would you like to build? › App with Quasar CLI, let's go! Proje ...

  9. 超详细的Xcode代码格式化教程,可自定义样式

    为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangF ...

  10. 超详细的Xcode代码格式化教程,可自定义样式。

    超详细的Xcode代码格式化教程,可自定义样式. 为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题.在之前,我们可能会写完代码后,再 ...

随机推荐

  1. 数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}

    题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池 相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据 ...

  2. a标签download属性跨域问题

    1.如果是加载了非同源的内容,该属性将失效,等于导航功能 2.在服务端设置Content-Disposition,使用HTTP响应头Content-disposition进行处理 3.先下载数据文件, ...

  3. php获取服务器操作系统等信息

    php获取服务器操作系统等信息 获取请求页面时通信协议的名称和版本: $_SERVER['SERVER_PROTOCOL'] 例如,"HTTP/1.0". PHP程式版本:< ...

  4. 零基础入门学习Java课堂笔记 ——day05

    面向对象(上) 面向过程:我打算列个计划表一步一步来 面向对象:我喜欢先分析分类,把复杂的问题简单化 1.什么是面向对象!!? 面向对象的本质就是:以类的方式组织代码,以对象的方式组织数据 封装 继承 ...

  5. 21.1 TLS简述--《Windows核心编程》

    一.TLS简述 我们知道在一个进程中,所有线程是共享同一个地址空间的.所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程.不过 ...

  6. TDD学习笔记(二)单元测试

    单元测试 定义 单元测试最早来源于Kent Beck,他在开发SmallTalk中引入了这个概念,随着软件工程学的不断发展,使得单元测试已经成为软件编程中一项非常有用的实践. 在维基百科中," ...

  7. 【开工大吉】推荐4款开源、美观的WPF UI组件库

    前言 经常有小伙伴在技术群里提问:WPF有什么好用的UI组件库?,今天大姚给大家推荐4款开源.美观的WPF UI组件库. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 ...

  8. JS leetcode 最长公共前缀 题解分析

    壹 ❀ 引 今天做的又是一道让我沮丧的题,思路有,但是代码逻辑最后还是没能正确理出来,题名为最长公共前缀,题目如下: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 ...

  9. CF505C Mr. Kitayuta, the Treasure Hunter

    题目链接 题目 见链接. 题解 知识点:线性dp. 常规的状态 \(dp[i][j]\) 表示为到第 \(i\) 个岛上一步走了 \(j\) 能得到宝藏的最大值,会炸空间.注意到步数是就算从 \(1\ ...

  10. NC19158 失衡天平

    题目链接 题目 题目描述 终于Alice走出了大魔王的陷阱,可是现在傻傻的她忘了带武器了,这可如何是好???这个时候,一个神秘老人走到她面前答应无偿给她武器,但老人有个条件,需要将所选武器分别放在天平 ...