Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion addons/GDQuest_GDScript_formatter/plugin.gd
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ const SETTING_FORMATTER_PATH = "formatter_path"
const SETTING_LINT_ON_SAVE = "lint_on_save"
const SETTING_LINT_LINE_LENGTH = "lint_line_length"
const SETTING_LINT_IGNORED_RULES = "lint_ignored_rules"
# Directories to ignore when Format on Save is enabled
const SETTING_IGNORED_DIRECTORIES = "format_on_save_ignored_directories"

const COMMAND_PALETTE_CATEGORY = "gdquest gdscript formatter/"
const COMMAND_PALETTE_FORMAT_SCRIPT = "Format GDScript"
Expand All @@ -30,7 +32,7 @@ const COMMAND_PALETTE_INSTALL_UPDATE = "Install or Update Formatter"
const COMMAND_PALETTE_UNINSTALL = "Uninstall Formatter"
const COMMAND_PALETTE_REPORT_ISSUE = "Report Issue"

const DEFAULT_SETTINGS = {
var DEFAULT_SETTINGS = {
SETTING_FORMAT_ON_SAVE: false,
SETTING_USE_SPACES: false,
SETTING_INDENT_SIZE: 4,
Expand All @@ -40,6 +42,7 @@ const DEFAULT_SETTINGS = {
SETTING_LINT_ON_SAVE: false,
SETTING_LINT_LINE_LENGTH: 100,
SETTING_LINT_IGNORED_RULES: "",
SETTING_IGNORED_DIRECTORIES: PackedStringArray(["addons/"]),
}

## Which gutter lint icons are shown in.
Expand Down Expand Up @@ -203,6 +206,24 @@ func _on_resource_saved(saved_resource: Resource) -> void:

var script := saved_resource as GDScript

var ignored_directories := get_editor_setting(SETTING_IGNORED_DIRECTORIES)
var path = script.resource_path.trim_prefix("res://")

var script_path_parts := path.split("/")

for directory: String in ignored_directories:
var normalized_dir := directory.trim_prefix("res://")
var directory_parts := normalized_dir.split("/")

var matches := true
for i in range(directory_parts.size()):
if directory_parts[i] != script_path_parts[i]:
matches = false
break

if matches:
return

if not has_command(get_editor_setting(SETTING_FORMATTER_PATH)) or not is_instance_valid(script):
return

Expand Down