Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

No entry to set "max-line-length" key for formatting in Godot addon settings... And question about .editorconfig

Fermée
#316 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

@NathanLovato y travaille déjà.

Depuis le 20/9/2026.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
55/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
godot, rust
Domaine
tooling

Piste de recherche

Commencez dans plugin.gd, comparez format_code avec lint_code et examinez get_editorconfig_format_on_save ainsi que le chemin du fichier temporaire. Vérifiez que le formatage reçoit la longueur de ligne configurée et que la détection de .editorconfig fonctionne pour les fichiers du projet. Le travail est terminé lorsque les deux paramètres se comportent correctement lors du formatage via l’addon Godot.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

There is a "Lint Line Length" in addon settings menu which only affects linting. I read plugin.gd and found it was implemented by run the formatter executable with --max-line-length=<max_line_length> flag:

func lint_code(script: GDScript) -> Array:
    # ...
    var formatter_arguments: Array = ["lint", ProjectSettings.globalize_path(script_path)]

    var max_line_length := get_editor_setting(SETTING_LINT_LINE_LENGTH) as int
    formatter_arguments.append("--max-line-length")
    formatter_arguments.append(str(max_line_length))
    # ...
    var exit_code := OS.execute(get_editor_setting(SETTING_FORMATTER_PATH), formatter_arguments, output)
    # ...

However for format_code function there is no line to add --max-line-length flag. This flag is valid for the executable itself for formatting, and line length is always a important attribute for a formatter, so it's weird the addon settings doesn't have any entry to set it, and it's quite easy to implement it by adding same codes to the format code function. I did so to let Lint Line Length value also affects formatting, and it works fine for me.

Besides .editorconfig file seems not work with addon. I tried formatting gdscript files with formatter executable directly using command lines in terminal, and it can find and use parameters in editor config file in parent directory correctly. So it's also weird that it doesn't work with addon. According to plugin.gd:

func get_editorconfig_format_on_save(script_path: String) -> Variant:
    var editorconfig_path := ProjectSettings.globalize_path("res://.editorconfig")
    # ...

Seems that it will only try to find editor config file in project root, and it only reads gdscript_formatter_format_on_save parameter from that file, ignoring other parameters. Is it intended?

EDIT:

Just quickly inspected plugin.gd again. Found why it ignores the .editorconfig. When you use the addon in godot editor, it creates a temp file in elsewhere:

	var path_temporary_file := OS.get_temp_dir().path_join(
		"gdscript_formatter_%d.gd" % Time.get_ticks_msec()
	)

The addon will first formats the temp file, then replaces the actual file with it. For my system it creates the temp file in somewhere like c:/temp/, far away from my project directory. When use the executable to format it, it will only search through the temp file folder and temp file's parent folders for .editorconfig. That's why it can't find my project's .editorconfig.

So one of the simplest solutions is just create the temp file in the same folder with the original file you want to format, and it's also easy to implement. Since I'm busy now I may try this method when I have some free time.

Langage dominant
Rust
Étoiles
483
Forks
41
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de GDQuest/GDScript-formatter

Toutes les issues de GDQuest/GDScript-formatter

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.