Geany中是否提供智能自动缩进功能?

14

我正在使用 Geany IDE 编写 JavaScript。我的缩进已经搞乱了,我想让它看起来更漂亮。当我在 Eclipse 中编写 Java 时,我可以使用 ctrl + i 来使所有间距有序。

Geany 中有哪些缩进选项?


如果您发现我的回答对您有所帮助,请至少接受它 :) - Tobiasz
Geany有缩进功能,但我想只有在打字时才会自动缩进。http://www.geany.org/manual/#auto-indentation 也许你可以使用另一个(外部)工具? - nha
4个回答

7

文档格式选项在 Geany 的插件愿望清单中(参见 Geany 的 插件愿望清单 中的自动更正缩进一节)。

然而,Geany 允许使用自定义命令发送文本 (请参考此处)

你可能会怀疑这打开了很多新的“大门”,其中包含了解决问题的方法。例如,Artistic Style 是一个跨平台的 C、C++、C# 和 Java 代码自动格式化工具。因此,解决方案是:

  • 获取任何接受标准输入文本并将结果文本返回到标准输出的代码格式化工具副本,
  • 在 Geany 中转到 发送所选内容至->设置自定义命令 并添加适合你的工具的命令。

我不是 Artistic Style 的支持者,你可以使用任何格式化 Java 代码的工具。HTML Tidy 或 PHP Beautifier 就是这样做的,结果看起来像这样:

enter image description here


3
只需将astyle作为自定义命令进行调用。请注意,必须选择当前文件中的所有文本! - Cilenco

4

HTML 的命令 简洁智能缩进 终于在 Geany 中实现:

bash -c "tidy --indent auto --indent-spaces 2 --char-encoding utf8 --quiet yes 2>/dev/null; true" 

1

基于 geany文档,自动缩进有以下四种类型:

Geany支持四种自动缩进类型:

无: 完全禁用自动缩进。

基本: 在新行上添加与上一行相同数量的空格。

当前字符: 基本类型的基础上,在打开大括号 '{' 后缩进新行,并在键入关闭大括号 '}' 时取消缩进。对于Python,在上一行的结尾键入 ':' 后会缩进新行。

匹配括号: 类似于当前字符,但是关闭括号将与包含打开括号的行的缩进对齐。

您只有以上选项。您可以使用 Scintilla 来改善和扩展这些选项。


1

PHPFormatter是一个php脚本,在https://github.com/NathanWong/phpformatter这里找到。它可以通过命令行运行,出色地格式化PHP、HTML和Javascript。根据作者的描述:

“这个PHP脚本将使用我的任意设置的格式规则(真实制表符,每行97字符,括号单独一行,缩进基于操作符层次结构而不是对齐,大多数操作符周围有空格但逗号或括号没有,if后面有空格等)来格式化另一个PHP脚本。它还可以格式化内联HTML,并且如果JS Beautify可用,它还会在内联HTML中使用它来格式化内联Javascript。”

我只需将2个文件:format.php和jsbeautify.php解压到我的主目录中,然后在Geany中添加了以下自定义命令:

php /home/myusername/format.php -

(注意结尾处的破折号。这告诉脚本接受标准输入流的输入,这是Geany发送文本的地方。)现在你只需要快速按下Ctrl+a(全选)然后Ctrl+1(或其他你放置命令的数字),然后...

就完成了...

美丽的格式化代码!!感谢Nathan!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接