Compare commits
2 commits
75575991fa
...
4218e2099d
Author | SHA1 | Date | |
---|---|---|---|
4218e2099d | |||
4adff6e9b8 |
3 changed files with 24 additions and 16 deletions
|
@ -3,5 +3,5 @@
|
||||||
name="Simple Format On Save"
|
name="Simple Format On Save"
|
||||||
description="Combination of simple gdscript formatter & Format On Save with extra rules for beatiful formatting...maybe"
|
description="Combination of simple gdscript formatter & Format On Save with extra rules for beatiful formatting...maybe"
|
||||||
author="VitSoonYoung"
|
author="VitSoonYoung"
|
||||||
version="0.1"
|
version="0.2"
|
||||||
script="simple_format_on_save.gd"
|
script="simple_format_on_save.gd"
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
class_name RuleBlankLines
|
class_name RuleBlankLines
|
||||||
|
|
||||||
var FORMAT_ACTION := "simple_format_on_save/format_code"
|
const FORMAT_ACTION := "simple_format_on_save/format_code"
|
||||||
var format_key: InputEventKey
|
var format_key: InputEventKey
|
||||||
|
|
||||||
|
var _EditorSettings = EditorInterface.get_editor_settings()
|
||||||
|
|
||||||
|
|
||||||
static func apply(code: String) -> String:
|
static func apply(code: String) -> String:
|
||||||
var trim1_regex = RegEx.create_from_string("\n{2,}")
|
var trim1_regex = RegEx.create_from_string("\n{2,}")
|
||||||
|
@ -28,14 +30,11 @@ static func _blank_for_func_class(code: String) -> String:
|
||||||
if func_class_regex.search(line):
|
if func_class_regex.search(line):
|
||||||
if modified_lines.size() > 0:
|
if modified_lines.size() > 0:
|
||||||
var i := modified_lines.size() - 1
|
var i := modified_lines.size() - 1
|
||||||
|
|
||||||
while i > 0 and comment_line_regex.search(modified_lines[i]):
|
while i > 0 and comment_line_regex.search(modified_lines[i]):
|
||||||
i -= 1
|
i -= 1
|
||||||
|
|
||||||
if i == 0:
|
if i == 0:
|
||||||
modified_lines.append(line)
|
modified_lines.append(line)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
modified_lines.insert(i + 1, "")
|
modified_lines.insert(i + 1, "")
|
||||||
modified_lines.insert(i + 1, "")
|
modified_lines.insert(i + 1, "")
|
||||||
|
|
||||||
|
@ -43,22 +42,19 @@ static func _blank_for_func_class(code: String) -> String:
|
||||||
if statement_regex.search(line):
|
if statement_regex.search(line):
|
||||||
if modified_lines.size() > 0:
|
if modified_lines.size() > 0:
|
||||||
var i := modified_lines.size() - 1
|
var i := modified_lines.size() - 1
|
||||||
|
|
||||||
if assignment_regex.search(modified_lines[i]) and not statement_regex.search(modified_lines[i]) and not statement_regex.search(line):
|
if assignment_regex.search(modified_lines[i]) and not statement_regex.search(modified_lines[i]) and not statement_regex.search(line):
|
||||||
modified_lines.insert(i + 1, "")
|
modified_lines.insert(i + 1, "")
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Space after a code block (Doesn't work with spaces for now)
|
# Space after a code block (Doesn't work with spaces for now)
|
||||||
|
if EditorInterface.get_editor_settings().get_setting(FormatOnSavePlugin.SETTING_PREFIX+"blank_after_dedent"):
|
||||||
var indent_count := line.count("\t")
|
var indent_count := line.count("\t")
|
||||||
|
|
||||||
if indent_count and not misc_statement_regex.search(line) and not statement_regex.search(line):
|
if indent_count and not misc_statement_regex.search(line) and not statement_regex.search(line):
|
||||||
if modified_lines.size() > 0:
|
if modified_lines.size() > 0:
|
||||||
var i := modified_lines.size() - 1
|
var i := modified_lines.size() - 1
|
||||||
|
|
||||||
if modified_lines[i].count("\t") > indent_count:
|
if modified_lines[i].count("\t") > indent_count:
|
||||||
modified_lines.insert(i + 1, "")
|
modified_lines.insert(i + 1, "")
|
||||||
|
|
||||||
modified_lines.append(line)
|
modified_lines.append(line)
|
||||||
|
|
||||||
return "\n".join(modified_lines)
|
return "\n".join(modified_lines)
|
||||||
|
|
|
@ -1,12 +1,24 @@
|
||||||
@tool
|
@tool
|
||||||
extends EditorPlugin
|
extends EditorPlugin
|
||||||
|
class_name FormatOnSavePlugin
|
||||||
|
|
||||||
var FORMAT_ACTION := "simple_format_on_save/format_code"
|
const FORMAT_ACTION := "simple_format_on_save/format_code"
|
||||||
|
const SETTING_PREFIX = "text_editor/format_on_save/"
|
||||||
var format_key: InputEventKey
|
var format_key: InputEventKey
|
||||||
var formatter: Formatter
|
var formatter: Formatter
|
||||||
|
|
||||||
|
|
||||||
|
## Create an editor setting so users can toggle features
|
||||||
|
func _set_default_setting(setting:String,default_value:Variant):
|
||||||
|
var _EditorSettings = EditorInterface.get_editor_settings()
|
||||||
|
if not _EditorSettings.has_setting(SETTING_PREFIX+setting):
|
||||||
|
_EditorSettings.set_setting(SETTING_PREFIX+setting, default_value)
|
||||||
|
_EditorSettings.set_initial_value(SETTING_PREFIX+setting, default_value,false)
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
|
_set_default_setting("blank_after_dedent",false)
|
||||||
|
|
||||||
add_tool_menu_item("Format (Ctrl+Alt+L)", _on_format_code)
|
add_tool_menu_item("Format (Ctrl+Alt+L)", _on_format_code)
|
||||||
|
|
||||||
if InputMap.has_action(FORMAT_ACTION):
|
if InputMap.has_action(FORMAT_ACTION):
|
||||||
|
|
Loading…
Reference in a new issue