]> git.eshelyaron.com Git - emacs.git/commitdiff
editorconfig-core.el: Remove unneeded defaulting code
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 18 Jun 2024 21:27:37 +0000 (17:27 -0400)
committerEshel Yaron <me@eshelyaron.com>
Fri, 21 Jun 2024 19:00:19 +0000 (21:00 +0200)
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

index 3dfdd5c71883e1b31efed0e891a2ec4ac4504636..02a2b7885ec5765923bfd2ab1b0cd3c3f9e2718e 100644 (file)
 
 ;; 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))