[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/editorconfig 906b78e042 2/3: Scratch/editorconfig (#346)
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/editorconfig 906b78e042 2/3: Scratch/editorconfig (#346) |
Date: |
Thu, 18 Jul 2024 13:00:00 -0400 (EDT) |
branch: elpa/editorconfig
commit 906b78e04220705f076e7de5db58c31a394d02f3
Author: 10sr <8.slashes@gmail.com>
Commit: GitHub <noreply@github.com>
Scratch/editorconfig (#346)
* Rename test files to `<foo>-tests.el`
This follows the convention used in Emacs's own test suite and works around
annoying circular `require`s when `ert-tests` happens to be in `load-path`.
Also adjust the Makefile not to get confused by generated files.
* Makefile (SRCS): Filter out ELPA-generated files.
* (editorconfig--should-set): Eliminate `lisp-indent-offset` special case
Instead of treating `lisp-indent-offset` specially in
`editorconfig--should-set` (to obey `editorconfig-lisp-use-default-indent`),
use a new function `editorconfig-set-indentation-lisp-mode`
for Lisp modes.
* lisp/editorconfig.el (editorconfig--should-set): Remove `size` argument.
(editorconfig-set-indentation): Adjust calls accordingly.
(editorconfig-set-indentation-lisp-mode): New function.
(editorconfig-indentation-alist): Use it.
* Fix minor cosmetic issues
Mostly fix compiler warnings and prefer #' to quote function names.
* editorconfig.el: Remove dependency on `nadvice` since we require
Emacs-26 which includes `nadvice` already.
Remove redundant `require`s. Remove redundant `:group` arguments.
Move `defvar`s outside of `eval-when-compile`.
Remove "post-end trailer".
* .dir-locals.el: New file, to replace the "post-end trailer".
* ert-tests/editorconfig-core-handle-tests.el (editorconfig--fixtures):
Rename from `fixtures`. Change all uses.
* ert-tests/editorconfig-tests.el (test-editorconfig)
(test-local-variables, test-hack-properties-functions):
Use `bound-and-true-p` when it's not guaranteed that the var will
be defined.
* Don't hook into `read-only-mode-hook`
Don't re-set variables just because `read-only-mode` is (de)activated,
and with Emacs-30's hooks it would be even less natural to do.
Also `buffer-read-only` can change without calling `read-only-mode`,
so better test it dynamically when we try to trim whitespace.
* lisp/editorconfig.el (editorconfig--delete-trailing-whitespace):
New function.
(editorconfig-set-trailing-ws): Use it. Use `pcase`.
Also prefer `before-save-hook` and use `add/remove-hook` to
manipulate hooks, like god intended.
Don't test `buffer-read-only` any more.
(editorconfig-mode): Don't hook into `read-only-mode-hook` any more.
* ert-tests/editorconfig-tests.el (test-trim-trailing-ws): Adjust the
test accordingly.
* editorconfig-core-handle.el: Don't use file names as glob pattern
Match relative file names against the glob pattern instead of
trying to construct a glob pattern that matches the absolute
file name (where the code failed to escape the possible
special chars).
* lisp/editorconfig-core-handle.el
(editorconfig-core-handle-section-get-properties): Delete `dir` arg.
(editorconfig-core-handle-get-properties-hash)
(editorconfig-core-handle-get-properties): Adjust call accordingly.
Use `declare` to mark it obsolete.
(editorconfig-core-handle--fnmatch-p): Delete `dir` arg.
---------
Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca>
---
.dir-locals.el | 4 +
Makefile | 2 +-
editorconfig-core-handle.el | 42 ++++---
editorconfig-fnmatch.el | 2 +-
editorconfig-tools.el | 2 +-
editorconfig.el | 139 +++++++++------------
...handle.el => editorconfig-core-handle-tests.el} | 20 +--
...orconfig-core.el => editorconfig-core-tests.el} | 0
...ig-fnmatch.el => editorconfig-fnmatch-tests.el} | 0
.../{editorconfig.el => editorconfig-tests.el} | 28 +++--
10 files changed, 112 insertions(+), 127 deletions(-)
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000000..cc741e0189
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,4 @@
+;;; Directory Local Variables -*- no-byte-compile: t; -*-
+;;; For more information see (info "(emacs) Directory Variables")
+
+((emacs-lisp-mode (sentence-end-double-space . t)))
diff --git a/Makefile b/Makefile
index 963f6de2ed..a4e5338c50 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ ERT_TESTS = $(wildcard $(PROJECT_ROOT_DIR)/ert-tests/*.el)
BATCHFLAGS = -batch -q --no-site-file -L $(PROJECT_ROOT_DIR)
MAIN_SRC = editorconfig.el
-SRCS = $(wildcard $(PROJECT_ROOT_DIR)/*.el)
+SRCS = $(filter-out %-autoloads.el %-pkg.el, $(wildcard
$(PROJECT_ROOT_DIR)/*.el))
OBJS = $(SRCS:.el=.elc)
.PHONY: check-unix check-dos \
diff --git a/editorconfig-core-handle.el b/editorconfig-core-handle.el
index d225e1456b..20f52a3b97 100644
--- a/editorconfig-core-handle.el
+++ b/editorconfig-core-handle.el
@@ -51,13 +51,14 @@ Slots:
(name nil)
(props nil))
-(defun editorconfig-core-handle-section-get-properties (section file dir)
+(defun editorconfig-core-handle-section-get-properties (section file)
"Return properties alist when SECTION name match FILE.
-DIR should be the directory where .editorconfig file which has SECTION lives.
-IF not match, return nil."
+FILE should be a relative file name, relative to the directory where
+the `.editorconfig' file which has SECTION lives.
+If not match, return nil."
(when (editorconfig-core-handle--fnmatch-p
- file (editorconfig-core-handle-section-name section) dir)
+ file (editorconfig-core-handle-section-name section))
(editorconfig-core-handle-section-props section)))
(cl-defstruct editorconfig-core-handle
@@ -115,16 +116,14 @@ If HANDLE is nil return nil."
The list returned will be ordered by the lines they appear.
If HANDLE is nil return nil."
+ (declare (obsolete editorconfig-core-handle-get-properties-hash "0.8.0"))
(when handle
- (let ((dir (file-name-directory (editorconfig-core-handle-path handle))))
+ (let* ((dir (file-name-directory (editorconfig-core-handle-path handle)))
+ (file (file-relative-name file dir)))
(cl-loop for section in (editorconfig-core-handle-sections handle)
- for props = (editorconfig-core-handle-section-get-properties
section
-
file
-
dir)
+ for props = (editorconfig-core-handle-section-get-properties
+ section file)
when props collect (copy-alist props)))))
-(make-obsolete 'editorconfig-core-handle-get-properties
- 'editorconfig-core-handle-get-properties-hash
- "0.8.0")
(defun editorconfig-core-handle-get-properties-hash (handle file)
@@ -132,24 +131,27 @@ If HANDLE is nil return nil."
If HANDLE is nil return nil."
(when handle
- (let ((hash (make-hash-table))
- (dir (file-name-directory (editorconfig-core-handle-path
- handle))))
+ (let* ((hash (make-hash-table))
+ (dir (file-name-directory (editorconfig-core-handle-path handle)))
+ (file (file-relative-name file dir)))
(dolist (section (editorconfig-core-handle-sections handle))
- (cl-loop for (key . value) in
(editorconfig-core-handle-section-get-properties section file dir)
+ (cl-loop for (key . value) in
(editorconfig-core-handle-section-get-properties section file)
do (puthash (intern key) value hash)))
hash)))
-(defun editorconfig-core-handle--fnmatch-p (name pattern dir)
+(defun editorconfig-core-handle--fnmatch-p (name pattern)
"Return non-nil if NAME match PATTERN.
If pattern has slash, pattern should be relative to DIR.
This function is a fnmatch with a few modification for EditorConfig usage."
(if (string-match-p "/" pattern)
- (let ((pattern (replace-regexp-in-string "^/" "" pattern))
- (dir (file-name-as-directory dir)))
- (editorconfig-fnmatch-p name (concat dir pattern)))
- (editorconfig-fnmatch-p name (concat "**/" pattern))))
+ (let ((pattern (replace-regexp-in-string "\\`/" "" pattern)))
+ (editorconfig-fnmatch-p name pattern))
+ ;; The match is not "anchored" so it can be either in the current dir or
+ ;; in a subdir. Contrary to Zsh patterns, editorconfig's `**/foo' does
+ ;; not match `foo', so we need to split the problem into two matches.
+ (or (editorconfig-fnmatch-p name pattern)
+ (editorconfig-fnmatch-p name (concat "**/" pattern)))))
(defsubst editorconfig-core-handle--string-trim (str)
"Remove leading and trailing whitespaces from STR."
diff --git a/editorconfig-fnmatch.el b/editorconfig-fnmatch.el
index 25a344dc2e..520aeb16c2 100644
--- a/editorconfig-fnmatch.el
+++ b/editorconfig-fnmatch.el
@@ -234,7 +234,7 @@ translation is found for PATTERN."
(number-end (string-to-number (match-string 2
pattern-sub))))
(setq result `(,@result ,(concat "\\(?:"
- (mapconcat
'number-to-string
+ (mapconcat
#'number-to-string
(cl-loop
for i from number-start to number-end
collect i)
"\\|")
diff --git a/editorconfig-tools.el b/editorconfig-tools.el
index 12c4057714..31f7c17ba2 100644
--- a/editorconfig-tools.el
+++ b/editorconfig-tools.el
@@ -115,7 +115,7 @@ any of regexps in `editorconfig-exclude-regexps'."
nil))
;;;###autoload
(defalias 'describe-editorconfig-properties
- 'editorconfig-display-current-properties)
+ #'editorconfig-display-current-properties)
;;;###autoload
(defun editorconfig-format-buffer()
diff --git a/editorconfig.el b/editorconfig.el
index e7bb3c90b1..029f99e148 100644
--- a/editorconfig.el
+++ b/editorconfig.el
@@ -5,7 +5,7 @@
;; Author: EditorConfig Team <editorconfig@googlegroups.com>
;; Version: 0.11.0
;; URL: https://github.com/editorconfig/editorconfig-emacs#readme
-;; Package-Requires: ((emacs "26.1") (nadvice "0.3"))
+;; Package-Requires: ((emacs "26.1"))
;; Keywords: convenience editorconfig
;; See
@@ -41,17 +41,12 @@
;;; Code:
(require 'cl-lib)
-(require 'pcase)
-(require 'nadvice)
-
-(eval-when-compile
- (require 'rx)
- (require 'subr-x)
- (defvar tex-indent-basic)
- (defvar tex-indent-item)
- (defvar tex-indent-arg)
- (defvar evil-shift-width))
+(eval-when-compile (require 'subr-x))
+(defvar tex-indent-basic)
+(defvar tex-indent-item)
+(defvar tex-indent-arg)
+(defvar evil-shift-width)
(require 'editorconfig-core)
@@ -73,8 +68,7 @@ coding styles between different editors and IDEs."
"Path to EditorConfig executable.
Used by `editorconfig--execute-editorconfig-exec'."
- :type 'string
- :group 'editorconfig)
+ :type 'string)
(define-obsolete-variable-alias
'edconf-get-properties-function
@@ -107,13 +101,11 @@ Possible known values are:
use `editorconfig-core-get-properties-hash'
* `editorconfig-get-properties-from-exec'
* Get properties by executing EditorConfig executable"
- :type 'function
- :group 'editorconfig)
+ :type 'function)
(defcustom editorconfig-mode-lighter " EditorConfig"
"Command `editorconfig-mode' lighter string."
- :type 'string
- :group 'editorconfig)
+ :type 'string)
(define-obsolete-variable-alias
'edconf-custom-hooks
@@ -143,8 +135,7 @@ show line numbers on the left:
This hook will be run even when there are no matching sections in
\".editorconfig\", or no \".editorconfig\" file was found at all."
- :type 'hook
- :group 'editorconfig)
+ :type 'hook)
(defcustom editorconfig-hack-properties-functions ()
"A list of function to alter property values before applying them.
@@ -166,8 +157,7 @@ overwrite \"indent_style\" property when current
`major-mode' is a
This hook will be run even when there are no matching sections in
\".editorconfig\", or no \".editorconfig\" file was found at all."
- :type 'hook
- :group 'editorconfig)
+ :type 'hook)
(make-obsolete-variable 'editorconfig-hack-properties-functions
"Using `editorconfig-after-apply-functions' instead is
recommended,
because since 2021/08/30 (v0.9.0) this variable cannot support all
properties:
@@ -204,7 +194,7 @@ This hook will be run even when there are no matching
sections in
(css-ts-mode css-indent-offset)
(d-mode c-basic-offset)
(elixir-ts-mode elixir-ts-indent-offset)
- (emacs-lisp-mode lisp-indent-offset)
+ (emacs-lisp-mode . editorconfig-set-indentation-lisp-mode)
(enh-ruby-mode enh-ruby-indent-level)
(erlang-mode erlang-indent-level)
(ess-mode ess-indent-offset)
@@ -253,7 +243,7 @@ This hook will be run even when there are no matching
sections in
(kotlin-mode kotlin-tab-width)
(kotlin-ts-mode kotlin-ts-mode-indent-offset)
(latex-mode . editorconfig-set-indentation-latex-mode)
- (lisp-mode lisp-indent-offset)
+ (lisp-mode . editorconfig-set-indentation-lisp-mode)
(livescript-mode livescript-tab-width)
(lua-mode lua-indent-level)
(lua-ts-mode lua-ts-indent-offset)
@@ -349,21 +339,18 @@ following forms:
NOTE: Only the **buffer local** value of VARIABLE will be set."
:type '(alist :key-type symbol :value-type sexp)
- :risky t
- :group 'editorconfig)
+ :risky t)
(defcustom editorconfig-exclude-modes ()
"Modes in which `editorconfig-mode-apply' will not run."
- :type '(repeat (symbol :tag "Major Mode"))
- :group 'editorconfig)
+ :type '(repeat (symbol :tag "Major Mode")))
(defcustom editorconfig-exclude-regexps ()
"List of regexp for buffer filenames `editorconfig-mode-apply' will not run.
When variable `buffer-file-name' matches any of the regexps, then
`editorconfig-mode-apply' will not do its work."
- :type '(repeat string)
- :group 'editorconfig)
+ :type '(repeat string))
(with-eval-after-load 'recentf
(add-to-list 'editorconfig-exclude-regexps
(rx-to-string '(seq string-start
@@ -375,8 +362,7 @@ When variable `buffer-file-name' matches any of the
regexps, then
If set, enable that mode when `trim_trailing_whitespace` is set to true.
Otherwise, use `delete-trailing-whitespace'."
- :type 'symbol
- :group 'editorconfig)
+ :type 'symbol)
(defvar editorconfig-properties-hash nil
"Hash object of EditorConfig properties that was enabled for current buffer.
@@ -400,13 +386,11 @@ number - `lisp-indent-offset' is not set only if
indent_size is
(defcustom editorconfig-override-file-local-variables t
"Non-nil means editorconfig will override file local variable values."
- :type 'boolean
- :group 'editorconfig)
+ :type 'boolean)
(defcustom editorconfig-override-dir-local-variables t
"Non-nil means editorconfig will override values defined in dir-locals.el ."
- :type 'boolean
- :group 'editorconfig)
+ :type 'boolean)
(define-error 'editorconfig-error
"Error thrown from editorconfig lib")
@@ -459,15 +443,20 @@ Make a message by passing ARGS to `format-message'."
(when (boundp 'LaTeX-item-indent)
(setq-local LaTeX-item-indent (- size))))
-(cl-defun editorconfig--should-set (symbol &optional size)
- "Determine if editorconfig should set SYMBOL.
-
-Optional arg SIZE is used when symbol is `lisp-indent-offset'.
-See `editorconfig-lisp-use-default-indent' for details."
+(defun editorconfig-set-indentation-lisp-mode (size)
+ "Set indent size to SIZE for Lisp mode(s)."
+ (when (cond ((null editorconfig-lisp-use-default-indent) t)
+ ((eql t editorconfig-lisp-use-default-indent) nil)
+ ((numberp editorconfig-lisp-use-default-indent)
+ (not (eql size editorconfig-lisp-use-default-indent)))
+ (t t))
+ (setq-local lisp-indent-offset size)))
+
+(cl-defun editorconfig--should-set (symbol)
+ "Determine if editorconfig should set SYMBOL."
(display-warning '(editorconfig editorconfig--should-set)
- (format "symbol: %S | size: %S"
- symbol
- size)
+ (format "symbol: %S"
+ symbol)
:debug)
(when (and (not editorconfig-override-file-local-variables)
(assq symbol file-local-variables-alist))
@@ -479,14 +468,6 @@ See `editorconfig-lisp-use-default-indent' for details."
(cl-return-from editorconfig--should-set
nil))
- (when (eq symbol 'lisp-indent-offset)
- (cl-return-from editorconfig--should-set
- (cond ((null editorconfig-lisp-use-default-indent) t)
- ((eql t editorconfig-lisp-use-default-indent) nil)
- ((numberp editorconfig-lisp-use-default-indent)
- (not (eql size editorconfig-lisp-use-default-indent)))
- (t t))))
-
t)
(defun editorconfig-set-indentation (style &optional size tab_width)
@@ -532,10 +513,10 @@ See `editorconfig-lisp-use-default-indent' for details."
((listp fn-or-list)
(dolist (elem fn-or-list)
(cond ((and (symbolp elem)
- (editorconfig--should-set elem size))
+ (editorconfig--should-set elem))
(set (make-local-variable elem) size))
((and (consp elem)
- (editorconfig--should-set (car elem) size))
+ (editorconfig--should-set (car elem)))
(let ((spec (cdr elem)))
(set (make-local-variable (car elem))
(cond ((functionp spec) (funcall spec size))
@@ -615,24 +596,23 @@ to non-nil when FINAL-NEWLINE is true."
(setq-local require-final-newline nil)
(setq-local mode-require-final-newline nil))))
+(defun editorconfig--delete-trailing-whitespace ()
+ "Call `delete-trailing-whitespace' unless the buffer is read-only."
+ (unless buffer-read-only (delete-trailing-whitespace)))
+
(defun editorconfig-set-trailing-ws (trim-trailing-ws)
- "Set up trimming of trailing whitespace at end of lines by TRIM-TRAILING-WS."
- (make-local-variable 'write-file-functions) ;; just current buffer
- (when (and (equal trim-trailing-ws "true")
- (not buffer-read-only))
- ;; when true we push delete-trailing-whitespace (emacs > 21)
- ;; to write-file-functions
- (if editorconfig-trim-whitespaces-mode
- (funcall editorconfig-trim-whitespaces-mode 1)
- (add-to-list 'write-file-functions 'delete-trailing-whitespace)))
- (when (or (equal trim-trailing-ws "false")
- buffer-read-only)
- ;; when false we remove every delete-trailing-whitespace
- ;; from write-file-functions
- (when editorconfig-trim-whitespaces-mode
- (funcall editorconfig-trim-whitespaces-mode 0))
- (setq write-file-functions
- (remove 'delete-trailing-whitespace write-file-functions))))
+ (pcase trim-trailing-ws
+ ("true"
+ (if editorconfig-trim-whitespaces-mode
+ (funcall editorconfig-trim-whitespaces-mode 1)
+ (add-hook 'before-save-hook
+ #'editorconfig--delete-trailing-whitespace nil t)))
+ ("false"
+ (when editorconfig-trim-whitespaces-mode
+ (funcall editorconfig-trim-whitespaces-mode 0))
+ (remove-hook 'before-save-hook
+ #'editorconfig--delete-trailing-whitespace t))))
+
(defun editorconfig-set-line-length (length)
"Set the max line length (`fill-column') to LENGTH."
@@ -679,7 +659,7 @@ to non-nil when FINAL-NEWLINE is true."
(let ((key-val (split-string prop " *= *")))
(when (> (length key-val) 1)
(let ((key (intern (car key-val)))
- (val (mapconcat 'identity (cdr key-val) "")))
+ (val (mapconcat #'identity (cdr key-val) "")))
(puthash key val properties)))))))
(defun editorconfig-get-properties-from-exec (filename)
@@ -870,7 +850,6 @@ To disable EditorConfig in some buffers, modify
:lighter editorconfig-mode-lighter
(let ((modehooks '(prog-mode-hook
text-mode-hook
- read-only-mode-hook
;; Some modes call `kill-all-local-variables' in their
init
;; code, which clears some values set by editorconfig.
;; For those modes, editorconfig-apply need to be called
@@ -878,16 +857,16 @@ To disable EditorConfig in some buffers, modify
rpm-spec-mode-hook)))
(if editorconfig-mode
(progn
- (advice-add 'find-file-noselect :around
'editorconfig--advice-find-file-noselect)
- (advice-add 'insert-file-contents :around
'editorconfig--advice-insert-file-contents)
+ (advice-add 'find-file-noselect :around
#'editorconfig--advice-find-file-noselect)
+ (advice-add 'insert-file-contents :around
#'editorconfig--advice-insert-file-contents)
(dolist (hook modehooks)
(add-hook hook
- 'editorconfig-major-mode-hook
+ #'editorconfig-major-mode-hook
t)))
- (advice-remove 'find-file-noselect
'editorconfig--advice-find-file-noselect)
- (advice-remove 'insert-file-contents
'editorconfig--advice-insert-file-contents)
+ (advice-remove 'find-file-noselect
#'editorconfig--advice-find-file-noselect)
+ (advice-remove 'insert-file-contents
#'editorconfig--advice-insert-file-contents)
(dolist (hook modehooks)
- (remove-hook hook 'editorconfig-major-mode-hook)))))
+ (remove-hook hook #'editorconfig-major-mode-hook)))))
;; (defconst editorconfig--version
@@ -927,7 +906,3 @@ version in the echo area and the messages buffer."
(provide 'editorconfig)
;;; editorconfig.el ends here
-
-;; Local Variables:
-;; sentence-end-double-space: t
-;; End:
diff --git a/ert-tests/editorconfig-core-handle.el
b/ert-tests/editorconfig-core-handle-tests.el
similarity index 88%
rename from ert-tests/editorconfig-core-handle.el
rename to ert-tests/editorconfig-core-handle-tests.el
index 2c28137394..0ebdab0c8c 100644
--- a/ert-tests/editorconfig-core-handle.el
+++ b/ert-tests/editorconfig-core-handle-tests.el
@@ -25,47 +25,47 @@
(require 'editorconfig-core-handle)
-(defconst fixtures (concat (file-name-directory load-file-name) "fixtures/")
+(defconst editorconfig--fixtures (concat (file-name-directory load-file-name)
"fixtures/")
"Path to fixtures.")
(set-variable 'vc-handled-backends nil)
(ert-deftest test-editorconfig-core-handle ()
;; handle.ini
- (let* ((conf (concat fixtures "handle.ini"))
+ (let* ((conf (concat editorconfig--fixtures "handle.ini"))
(handle (editorconfig-core-handle conf)))
(should (editorconfig-core-handle-root-p handle))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"b.js"))
'((("key2" . "value2")))))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"a.js"))
'((("key1" . "value1")) (("key2" . "value2"))))))
;; Test twice for checking cache
- (let* ((conf (concat fixtures "handle.ini"))
+ (let* ((conf (concat editorconfig--fixtures "handle.ini"))
(handle (editorconfig-core-handle conf)))
(should (editorconfig-core-handle-root-p handle))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"b.js"))
'((("key2" . "value2")))))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"a.js"))
'((("key1" . "value1")) (("key2" . "value2"))))))
;; handle2.ini
- (let* ((conf (concat fixtures "handle2.ini"))
+ (let* ((conf (concat editorconfig--fixtures "handle2.ini"))
(handle (editorconfig-core-handle conf)))
(should-not (editorconfig-core-handle-root-p handle))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"b.js"))
nil))
(should (equal (editorconfig-core-handle-get-properties handle
- (concat fixtures
+ (concat
editorconfig--fixtures
"a.js"))
'((("key" . "value"))))))
diff --git a/ert-tests/editorconfig-core.el
b/ert-tests/editorconfig-core-tests.el
similarity index 100%
rename from ert-tests/editorconfig-core.el
rename to ert-tests/editorconfig-core-tests.el
diff --git a/ert-tests/editorconfig-fnmatch.el
b/ert-tests/editorconfig-fnmatch-tests.el
similarity index 100%
rename from ert-tests/editorconfig-fnmatch.el
rename to ert-tests/editorconfig-fnmatch-tests.el
diff --git a/ert-tests/editorconfig.el b/ert-tests/editorconfig-tests.el
similarity index 86%
rename from ert-tests/editorconfig.el
rename to ert-tests/editorconfig-tests.el
index 4fcfe13f4e..82577f8518 100644
--- a/ert-tests/editorconfig.el
+++ b/ert-tests/editorconfig-tests.el
@@ -75,7 +75,7 @@
(should (eq indent-tabs-mode nil)))
(with-visit-file (concat editorconfig-ert-dir "4_space.py")
- (should (eq python-indent-offset 4))
+ (should (eq (bound-and-true-p python-indent-offset) 4))
(should (eq tab-width 8))
(should (eq indent-tabs-mode nil)))
(editorconfig-mode -1))
@@ -102,12 +102,16 @@
(ert-deftest test-trim-trailing-ws nil
(editorconfig-mode 1)
(with-visit-file (concat editorconfig-ert-dir "trim.txt")
- (should (memq 'delete-trailing-whitespace
- write-file-functions)))
- (with-visit-file (concat editorconfig-ert-dir "trim.txt")
- (read-only-mode 1)
- (should (not (memq 'delete-trailing-whitespace
- write-file-functions))))
+ (should (memq #'editorconfig--delete-trailing-whitespace
+ before-save-hook)))
+ ;; FIXME: We don't hook into `read-only-mode', so instead we should
+ ;; make a more thorough test that saves the file after making the buffer
+ ;; read-only and makes sure it does not trim the trailing-ws of the
+ ;; buffer/file.
+ ;;(with-visit-file (concat editorconfig-ert-dir "trim.txt")
+ ;; (read-only-mode 1)
+ ;; (should (not (memq #'editorconfig--delete-trailing-whitespace
+ ;; before-save-hook))))
(editorconfig-mode -1))
(ert-deftest test-charset nil
@@ -127,21 +131,21 @@
(editorconfig-mode 1)
(with-visit-file (concat editorconfig-local-variables-ert-dir
"file_locals.rb")
(should (eq tab-width 9))
- (should (eq ruby-indent-level 7)))
+ (should (eq (bound-and-true-p ruby-indent-level) 7)))
(with-visit-file (concat editorconfig-local-variables-ert-dir "dir_locals.c")
(should (eq tab-width 9))
- (should (eq c-basic-offset 7)))
+ (should (eq (bound-and-true-p c-basic-offset) 7)))
(let ((editorconfig-override-file-local-variables nil))
(with-visit-file (concat editorconfig-local-variables-ert-dir
"file_locals.rb")
(should (eq tab-width 5))
- (should (eq ruby-indent-level 3))))
+ (should (eq (bound-and-true-p ruby-indent-level) 3))))
(let ((editorconfig-override-dir-local-variables nil))
(with-visit-file (concat editorconfig-local-variables-ert-dir
"dir_locals.c")
(should (eq tab-width 5))
- (should (eq c-basic-offset 3))))
+ (should (eq (bound-and-true-p c-basic-offset) 3))))
(editorconfig-mode -1))
(ert-deftest test-file-type-emacs nil
@@ -168,7 +172,7 @@
(lambda (props)
(puthash 'indent_size "5" props)))
(with-visit-file (concat editorconfig-ert-dir "4_space.py")
- (should (eq python-indent-offset 5)))
+ (should (eq (bound-and-true-p python-indent-offset) 5)))
(setq editorconfig-hack-properties-functions nil)
(editorconfig-mode -1))