;; 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.
".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.
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))