From c42c599e3513f7225df3410b224e9f6955e0fd3c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 18 Jun 2024 17:27:37 -0400 Subject: [PATCH] editorconfig-core.el: Remove unneeded defaulting code This code risks setting `tab-width` even when it's not requested, and these rules are better handled in `editorconfig--get-indentation` in any case. * lisp/editorconfig-core.el (editorconfig-core-get-properties): Delete function, unused. (editorconfig-core-get-properties-hash): Comment out defaulting code. (cherry picked from commit 55e19499a690241828dc4fc5ce7ab6b8209fe58e) --- lisp/editorconfig-core.el | 75 ++++++++++++++------------------------- 1 file changed, 26 insertions(+), 49 deletions(-) diff --git a/lisp/editorconfig-core.el b/lisp/editorconfig-core.el index 3dfdd5c7188..02a2b7885ec 100644 --- a/lisp/editorconfig-core.el +++ b/lisp/editorconfig-core.el @@ -43,18 +43,6 @@ ;; Functions -;; editorconfig-core-get-properties (&optional file confname confversion) - -;; Get EditorConfig properties for FILE. - -;; If FILE is not given, use currently visiting file. -;; Give CONFNAME for basename of config file other than .editorconfig. -;; If need to specify config format version, give CONFVERSION. - -;; This functions returns alist of properties. Each element will look like -;; (KEY . VALUE) . - - ;; editorconfig-core-get-properties-hash (&optional file confname confversion) ;; Get EditorConfig properties for FILE. @@ -97,21 +85,6 @@ RESULT is used internally and normally should not be used." ".editorconfig"))))) (editorconfig-core-handle-path handle))) -(defun editorconfig-core-get-properties (&optional file confname confversion) - "Get EditorConfig properties for FILE. -If FILE is not given, use currently visiting file. -Give CONFNAME for basename of config file other than .editorconfig. -If need to specify config format version, give CONFVERSION. - -This function returns an alist of properties. Each element will -look like (KEY . VALUE)." - (let ((hash (editorconfig-core-get-properties-hash file confname confversion)) - (result nil)) - (maphash (lambda (key value) - (add-to-list 'result (cons (symbol-name key) value))) - hash) - result)) - (defun editorconfig-core--hash-merge (into update) "Merge two hashes INTO and UPDATE. @@ -142,36 +115,40 @@ hash object instead." file))) ;; Downcase known boolean values + ;; FIXME: Why not do that in `editorconfig-core-handle--parse-file'? (dolist (key '( end_of_line indent_style indent_size insert_final_newline trim_trailing_whitespace charset)) (when-let* ((val (gethash key result))) (puthash key (downcase val) result))) ;; Add indent_size property - (let ((v-indent-size (gethash 'indent_size result)) - (v-indent-style (gethash 'indent_style result))) - (when (and (not v-indent-size) - (string= v-indent-style "tab") - ;; If VERSION < 0.9.0, indent_size should have no default value - (version<= "0.9.0" - confversion)) - (puthash 'indent_size - "tab" - result))) + ;; FIXME: Why? Which part of the spec requires that? + ;;(let ((v-indent-size (gethash 'indent_size result)) + ;; (v-indent-style (gethash 'indent_style result))) + ;; (when (and (not v-indent-size) + ;; (string= v-indent-style "tab") + ;; ;; If VERSION < 0.9.0, indent_size should have no default value + ;; (version<= "0.9.0" + ;; confversion)) + ;; (puthash 'indent_size + ;; "tab" + ;; result))) ;; Add tab_width property - (let ((v-indent-size (gethash 'indent_size result)) - (v-tab-width (gethash 'tab_width result))) - (when (and v-indent-size - (not v-tab-width) - (not (string= v-indent-size "tab"))) - (puthash 'tab_width v-indent-size result))) + ;; FIXME: Why? Which part of the spec requires that? + ;;(let ((v-indent-size (gethash 'indent_size result)) + ;; (v-tab-width (gethash 'tab_width result))) + ;; (when (and v-indent-size + ;; (not v-tab-width) + ;; (not (string= v-indent-size "tab"))) + ;; (puthash 'tab_width v-indent-size result))) ;; Update indent-size property - (let ((v-indent-size (gethash 'indent_size result)) - (v-tab-width (gethash 'tab_width result))) - (when (and v-indent-size - v-tab-width - (string= v-indent-size "tab")) - (puthash 'indent_size v-tab-width result))) + ;; FIXME: Why? Which part of the spec requires that? + ;;(let ((v-indent-size (gethash 'indent_size result)) + ;; (v-tab-width (gethash 'tab_width result))) + ;; (when (and v-indent-size + ;; v-tab-width + ;; (string= v-indent-size "tab")) + ;; (puthash 'indent_size v-tab-width result))) result)) -- 2.39.2