Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新的功能请求:对于 Html、Css、Js、SQL 的标准格式化/压缩 #614

Open
jkqxl opened this issue Feb 18, 2023 · 3 comments
Open

Comments

@jkqxl
Copy link

jkqxl commented Feb 18, 2023

应用场景
当我经常查看一些写着代码的文件时,它们常常是以压缩而非标准格式的样子显示,不利于查阅,因而常常需要用到一些小工具去进行代码格式化或或者之后重新压缩,这个经常的过程是:打开第三方工具--->复制--->粘贴--->格式化--->查看、修改等--->压缩--->复制、粘贴。某些时候甚至还需要重新复制到txt文件修改,之后重新压缩,等于是上面的过程重复了两次,这个过程是如此的繁琐,但却常常需要用到它,因此请求能够在工具选项中增加这个功能。

其它的问题
1.为什么不使用如 Visual Studio Code 等更专业的工具来实现这个功能?
因为 主要是用来 查看、检查或者轻微的修改,而不是重新写一遍代码。
2.诸如 notepad++ 、Visual Studio Code 等代码格式化的部分功能是通过插件实现的,原有的功能并不能让人满意,不知在Notepad2上能否直接实现呢?

既然在最新V4.23.01版的工具选项中已经有了 Base64 解码/编码的功能,那对于 Html、Css、Js、SQL 的标准格式化/压缩,个人认为也是有必要的。

@Crystal-RainSlide
Copy link

Crystal-RainSlide commented Sep 13, 2023

最好分开来。加上 SQL 的话,我已知就只有早就停止维护的 https://github.com/vkiryukhin/vkBeautify 可以一次性做到了。

如果愿意实现一个更为复杂的配置系统,可以考虑在“编辑”菜单下,新增一个“整个文件(F)”,里边包含“格式化”、“压缩代码”等功能。然后,可以像配置语法高亮一样,来增删和定制这些功能,指定某一编程语言的某一功能,调用什么格式化/压缩程序,带什么参数,执行什么命令。


2.诸如 notepad++ 、Visual Studio Code 等代码格式化的部分功能是通过插件实现的,原有的功能并不能让人满意,不知在Notepad2上能否直接实现呢?

对插件、非直接实现有什么不满意?正确的代码格式化和压缩,需要把代码词法解析成 AST 再转回文本。不同编程语言的格式化和压缩工具,都是由专门的项目维护的,根本不是,也不能是代码编辑器应该做的。另外,VSCode 已经集成了 HTML CSS JS 的代码格式化支持,压缩则由 Web 项目中配置的构建工具完成。

@zufuliu
Copy link
Owner

zufuliu commented May 1, 2024

CSS, JavaScript, JSON and JSON5 compress & pretty implemented by 207eb02. JavaScript pretty still needs further work.
https://github.com/zufuliu/notepad2/blob/207eb024dae36d93d080cf9d5220e12969418e7d/src/Bridge.cpp#L1151-L1155

image

@zufuliu
Copy link
Owner

zufuliu commented May 12, 2024

Code compress & pretty for CSS, JavaScript, JSON and JSON5 is ready for use, feel free to test latest builds (on main branch) from https://github.com/zufuliu/notepad2/actions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants