commit
a2b7d1129ba03ab7d06618d838cd3abe6852488b
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Tue Jun 18 01:23:21 2024 -0400
Move files for inclusion into Emacs
commit
cd4fc6f933e8679eff1754eaaac99e4361f0122f
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Sun Jun 16 13:33:55 2024 -0400
Incorporate trivial left-over changes
The previous commits are the result of a `git rebase` that removed
all the commits by contributors for whom we don't have paperwork.
This one "smoothes" over some of the remaining diffs.
commit
94c0223e888d637ae5d75fcb210fe4bf7898b3da
Author: 10sr <8.slashes@gmail.com>
Date: Sat Jun 8 00:52:06 2024 +0900
Fix text (#342)
commit
d50dfb5c5bf2dc832c9aff8f4b8603c2d504c41a
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jun 4 15:02:56 2024 +0900
Refactor find-file advices (#340)
* Add coding-system test
* Refactor find-file advices
* Fix test
* Fix test
* Update
* Update
commit
f55bb4e691dcb63502035aa3e48f6839ae163b44
Author: 10sr <8.slashes@gmail.com>
Date: Sun Jun 2 16:42:31 2024 +0900
Update CHANGELOG.md (#339)
* Update CHANGELOG.md
* Update CHANGELOG.md
commit
a85a4cafa6c8a1a80f3671658e5aaaf8faedb923
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 31 22:19:15 2024 +0900
Add switch not to override local variable values (#338)
* Add tests
* Define variables
* Update --should-set
* Add fixes to work
* Update test and fix
* Fix variables
* Use defcustom for switch variables
* Remove comment
commit
4fbfad0591a9851a48b8ead1e4459677d3f64c58
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Sat May 11 22:38:20 2024 -0700
feat: Add Svelte support (#333)
commit
d2d942b4cc83fa0ba32dcaaf6c73004e6490bfc8
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 11 15:45:42 2024 +0900
Prepare v0.11.0 (#332)
* Prepare v0.11.0
* Update CHANGLOG for v0.11.0
* 2024
commit
9ad3ed0e58bcd719d63d7b64538eff118d094767
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 10 00:45:15 2024 +0900
Update CHANGELOG (#331)
commit
3fb9fd274d2435228a6545cd2a7553c9522b32e8
Author: 10sr <8.slashes@gmail.com>
Date: Mon May 6 23:01:39 2024 +0900
Separate some utility commands to new file (#330)
* Remove switch to use legacy version
Remove `editorconfig--lagacy-version` variable.
* Create editorconfig-tools.el and move some functions into it
* Fix merge
* Update commentary
* Update CHANGELOG
* Update text
commit
d73f126ddb44eba628a87df07f8fd7247c8221aa
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 5 23:46:58 2024 +0900
Remove editorconfig-mode legacy version (#304)
* Remove switch to use legacy version
Remove `editorconfig--lagacy-version` variable.
* Update CHANGELOG
commit
ea19d96a7afcd947ece8490d8d9846519ac53606
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 3 18:49:50 2024 +0900
Exclude some versions from test target (#329)
nix-emacs-ci does not provide them any more.
commit
641c8cd06abfd0cf99cc56eeca5458a03feec7c6
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Thu Mar 28 13:22:07 2024 -0700
ci: Bump Emacs 29.x to 3 (#327)
commit
0eef782ae0ece28f0c446165febcf02f6207bb5e
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Mon Mar 18 13:49:24 2024 -0700
feat: Add Zig support (#326)
* feat: Add Zig support
commit
4c7c96dee9ad7318b4df9414758cd46957cdb495
Author: USAMI Kenta <tadsan@zonu.me>
Date: Tue Jan 9 12:24:11 2024 +0900
Add jsonian-mode (#320)
commit
94f6fa546f85a49fea649d9c479f20613a36b9af
Author: USAMI Kenta <tadsan@zonu.me>
Date: Mon Dec 18 14:01:05 2023 +0900
Add php-ts-mode (#318)
commit
f6eba36c09840b3f1952fb8a542347741a4f3de9
Author: 10sr <8.slashes@gmail.com>
Date: Thu Aug 3 00:05:49 2023 +0900
Add support for hcl-mode (#312)
commit
4f0e71c9f9ae00fd6e90573c5c779da4c5f397ef
Author: 10sr <8.slashes@gmail.com>
Date: Wed Aug 2 23:45:29 2023 +0900
Temporarily remove test with windows-latest, emacs snapshot (#313)
commit
e81368ede389feb28d941c8e135c11e4bdf0160d
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Wed Aug 2 07:25:26 2023 -0700
test: Emacs 29.1 (#311)
commit
dc571e9422a1713e252093b4ee0eb290841dc07c
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 19 17:51:28 2023 +0900
Update CHANGELOG (#308)
commit
8c1ec23fe6d9fc1d3e2ce24fe76503c88a4ebbc6
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 19 17:28:11 2023 +0900
Prepare v0.10.1 (#307)
commit
a415057ecfc5e89a903cb2e62a7d9d2596769532
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 19 17:07:23 2023 +0900
Fix compile warning of python-mode offset (#306)
commit
94aa31702f7316db63411de8ded371f782d02baa
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 19 16:51:48 2023 +0900
Fix when-let (again) (#305)
* Fix compile of editorconfig-core
* Use when-let* instead of when-let
commit
3b2b213934e6648834f043623bdce2a3b816ece1
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 7 17:15:54 2023 +0900
Prepare v0.10.0 (#303)
* Update CHANGELOG
* Update CHANGELOG
* Update version string
commit
ea22e6977eb64a38e19250b1fef3933b702d8a16
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 7 17:03:30 2023 +0900
Revert "Update version string"
This reverts commit
dfce47f4c5369711524c4da606201f33649bf894.
commit
8ba886d3a64514ca6b558a19a3df7cf147f528f0
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 7 16:46:09 2023 +0900
Update version string
commit
c6769a3be9d5447bbf253681e731aa017de49872
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 7 16:17:58 2023 +0900
Check mode-class property for special modes (#301)
In addition to checking parent mode
commit
02bd633818a2db80b2bf5ebaaf3eaed76a0443ac
Author: 10sr <8.slashes@gmail.com>
Date: Sun May 7 15:59:34 2023 +0900
Load subr-x when compiling (#302)
`when-let` depends on this.
commit
d7da0ea0fe118d88d032e81de65c79593c5181ea
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Thu Apr 27 03:25:18 2023 +0800
Add support for gdscript-mode (#300)
commit
93c418e7d385f55103d94a926b0ec051e51bceeb
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Sun Apr 16 07:12:01 2023 +0800
fix: Fix compile warnings (#298)
commit
d21983b235c11f4a1845bd80e9d6ca25c9882f9a
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Sun Apr 16 07:05:26 2023 +0800
Update copyright year (#297)
commit
38f84cca9a68bca0e74bb4f50e178e6a9883c1f4
Author: Mohsin Kaleem <mohkale@kisara.moe>
Date: Mon Apr 10 00:46:35 2023 +0100
Add bash-ts-mode to editorconfig-indentation-alist (#296)
Co-authored-by: Hong Xu <hong@topbug.net>
commit
5f112084d762c05a6d31b9bd3c4619789614f842
Author: Simen Heggestøyl <simenheg@runbox.com>
Date: Thu Mar 2 09:31:07 2023 +0100
Fix compilation warnings in Emacs 29 (#292)
Fix a bunch of compilation warnings in Emacs 29 about wrong usage of
unescaped single quotes in docstrings.
commit
37b142e86513b2477c19defcf6798e362e5ba7bd
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Wed Feb 15 23:12:21 2023 -0800
docs(README.md): Update development instructions (#291)
commit
7f3c344e15e86a54390f4b3428432476b45d6c62
Author: Mohsin Kaleem <mohkalsin@gmail.com>
Date: Sun Feb 12 06:17:01 2023 +0000
Add indent variable associations for numerous tree-sitter modes (#290)
* Add indent variable associations for numerous tree-sitter modes
* build: Correct csharp-ts-mode variable reference
commit
26bc586c7e19dd00554f732f4313e07a0a18bb97
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Tue Jan 3 19:43:54 2023 +0800
Drop Emacs 24.x and 25.x (#286)
* Drop Emacs 24.x and 25.x
* test(build.yaml): Make fail-fast to false
* Update CI test
* docs: Update changelog
* Revert author information
commit
d96709f3ddb7ce905e2ba1ff615ed875e26d6fdb
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Thu Dec 29 05:46:11 2022 +0800
chore: Place emacs dependency to the front (#285)
* chore: Place emacs dependency infront
* Update copyright year
commit
00913e8db3a864e7dbf8da7aa6ac355aeef3f999
Author: 10sr <8.slashes@gmail.com>
Date: Mon Nov 7 12:00:26 2022 +0900
Prepare v0.9.1 (#281)
commit
b57c665de578b7510affa426478fadacef80f5d4
Author: 10sr <8.slashes@gmail.com>
Date: Mon Oct 31 14:47:17 2022 +0900
Check `filename` rather than `buffer-file-name` for consistency (#280)
Co-authored-by: Wade Zhang <dochang@gmail.com>
commit
35b360daebc6fc30723b5f361c65345dea0cc7f7
Author: 10sr <8.slashes@gmail.com>
Date: Sun Oct 23 22:20:37 2022 +0900
Prepare v0.9.0 (#275)
* Update version number in el file
* Update CHANGELOG for 0.9.0
* Fix CHANGELOG
* Fix release date
commit
52d089efa733e0add922e07485cf8ac547bf9e3c
Author: 10sr <8.slashes@gmail.com>
Date: Sun Oct 23 22:13:13 2022 +0900
Fix package load for use-package usage (#277)
commit
b9c5af58e5059dad44a79a52790c2d913930d0ef
Author: 10sr <8.slashes@gmail.com>
Date: Sun Oct 23 20:47:55 2022 +0900
Add fixes for Emacs 29 (#276)
* Fix warnings reported with Emacs29 snapshot
* Disable vc feature for ert testings
commit
cc2fc3d25447dfa6271a9b6434478c2f140b4022
Author: Jen-Chieh Shen <jcs090218@gmail.com>
Date: Fri Sep 30 07:18:09 2022 +0800
tests(build.yml): Use latest minor version number (#274)
commit
7e266d113ed69c487e25260527c3e39fa274662f
Author: 10sr <8.slashes@gmail.com>
Date: Mon Apr 18 14:41:07 2022 +0900
Add emacs 28.1 to test target (#270)
commit
bd35e505585a738cfed09f8d7fbcdac523f648bb
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 26 13:05:00 2022 +0900
Add doc about lsp-mode (#266)
* WIP Add doc about lsp-mode
* Update README
commit
69582a19e4c40bbf2006c2fac6f61b8eb5c9d4e3
Author: 10sr <8.slashes@gmail.com>
Date: Thu Sep 2 05:53:42 2021 +0900
Update CHANGELOG
commit
3c47c18a72e98036d9ebf11350c3af9683d86c76
Author: 10sr <8.slashes@gmail.com>
Date: Mon Aug 30 19:25:20 2021 +0900
Use new implementation by default (#263)
* Use new implementation by default
* Remove old test
* Make editorconfig-hack-properties-functions deprecated
commit
111a668e52f68706650d5624f16fd92c0c113f7b
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 13 22:01:38 2021 +0900
Prepare v0.8.2 (#262)
* Update CHANGELOG
* 2021
* Prepare v0.8.2
commit
4bcd7e2f12800d3a4566130f447533a1955a978a
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 13 21:55:02 2021 +0900
Update texi doc
commit
7e71870e27d2ef23196127640ca3935cbdd4a432
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 13 00:30:01 2021 +0900
Update debug message format (#261)
commit
76fc064ee4ff6ab05db2c5004d7d4cd150b2fac1
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 13 00:19:52 2021 +0900
Fix editorconfig-major-mode-hook (#260)
commit
db6ae0703c07568780c71dd92874886208536eaa
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 13 00:07:12 2021 +0900
Update README for NonGNU ELPA repository (#259)
* Add NonGNU ELPA badge
* Update README
commit
f3164820fc06a642bbc0eccadc5386ec98befb5b
Author: 10sr <8.slashes@gmail.com>
Date: Tue Aug 10 00:23:58 2021 +0900
Add some bug fixes to
20210221-testing (#258)
* Rename internal function name
* Update comment
* Update -set-coding-system func name and doc
* Add comment
* Fix mode-hooks
* Fix func name
* Update -major-mode-hook function
commit
5e0f23b64c822e7f2ff1d23c756e89c1c073c23c
Author: 10sr <8.slashes@gmail.com>
Date: Wed Apr 7 13:07:42 2021 +0900
Add fixes for compile warning
commit
b46c5dd667b68bfca204ff7424df8588dae12a56
Author: 10sr <8.slashes@gmail.com>
Date: Wed Apr 7 12:02:07 2021 +0900
Make new impl work when changing major-mode (#255)
commit
7375e7fdd21be087ffb52bf2917aefcaded3292c
Author: 10sr <8.slashes@gmail.com>
Date: Mon Feb 22 01:17:49 2021 +0900
Return early when expecting coding-system has been already set
commit
13d8f9bb7bddf7f43091829fa361a336dbf2de61
Author: 10sr <8.slashes@gmail.com>
Date: Sun Feb 21 22:41:57 2021 +0900
Add minor fixes to tests (#252)
* Update Makefile targets
* Update github actions task
* Fix test macros
* Update README
commit
ddce92ffcc92b79080949ad72801292fa2bafeb9
Author: 10sr <8.slashes@gmail.com>
Date: Sun Feb 21 22:25:29 2021 +0900
Use flag instead of adding -2-mode for new version testing (#251)
* Use flag instead of adding -2-mode
* Fix test
commit
f18086a5b97625bcb51a4c8cb790efca80ef6d10
Author: 10sr <8.slashes@gmail.com>
Date: Sun Feb 21 21:37:45 2021 +0900
Add debug message to -set-coding-system
commit
afe9f62ecfcba0ce92255fa18c4a1af0787ff3b0
Author: 10sr <8.slashes@gmail.com>
Date: Sun Feb 21 21:06:19 2021 +0900
Move hack-properties-function run
commit
2c7790d6eec32e486b448e2e40549d3f139227df
Author: 10sr <8.slashes@gmail.com>
Date: Sun Feb 21 20:58:40 2021 +0900
Update display-warning messages
commit
f8dc92d37b965370a2332e19609cebdddbbac406
Author: 10sr <8.slashes@gmail.com>
Date: Sat Feb 20 01:56:22 2021 +0900
Fix for coding-system set when remote files do not exist (#250)
commit
28108cc8b456cedbc2e895da1c1151a11571cd4f
Author: 10sr <8.slashes@gmail.com>
Date: Sat Feb 20 00:44:22 2021 +0900
Fix editorconfig execution for remote hosts via tramp (#249)
commit
8086a8a45982b30a9620f723ce81994ed4ad26e1
Author: 10sr <8.slashes@gmail.com>
Date: Sat Feb 20 00:14:23 2021 +0900
Update docstrings
commit
69c8e3f766b2d458c5e3461c772cff69434962cd
Author: 10sr <8.slashes@gmail.com>
Date: Fri Feb 19 20:39:05 2021 +0900
Update debug message
commit
da2ede9ef13ae04ba4f1a37236052d9ce4c2e150
Author: 10sr <8.slashes@gmail.com>
Date: Fri Feb 19 18:11:37 2021 +0900
Refactoring & add editorconfig-2-mode for beta test (#248)
* Remove file type experimental feature temporarily
* Do some refactors
* Ignore failures of tests for file type feature
* Make editorconfig-get-properties-function accept one argument
* Implement editorconfig--advice-find-file-noselect
* Define editorconfig-error
* Implement advices
* Update adviced function body
* Update function name
* Refactor exclude functions
* Add more error handlings
* Refactor editorconfig--advice-find-file-noselect
* Add editorconfig-2-mode
* Add nadvice to dependency list
* Use display-warning instead of message for debug log
* Update README
* Fix editorconfig-2-mode for read-only-mode
* Add test for editorconfig-2-mode
commit
d53e3da79f40ec879b1520b6f73c371f8a5cfc03
Author: 10sr <8.slashes@gmail.com>
Date: Mon Feb 15 00:27:04 2021 +0900
Stop excluding remote files by default (#245)
To exclude remote files again, add following to the init.el:
(add-to-list 'editorconfig-exclude-regexps
(eval-when-compile
(rx string-start "/" (or "http" "https" "ftp" "sftp"
"rsync" "ssh") ":")))
commit
968bb5fb871e0076a4779f78526e3ad91777e60c
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jan 12 18:01:07 2021 +0900
Do not run editorconfig-apply on recentf-save-file (#241)
commit
a6c64cc26d5d237f6b3c53e8d637af96c428a5f7
Author: 10sr <8.slashes@gmail.com>
Date: Fri Jan 8 13:28:50 2021 +0900
Use revert-buffer-with-coding-system to set coding system (#236)
* Use revert-buffer-with-coding-system to set coding system
* Avoid infinite call
* Do not ask user for revert when buffer is not modified
* Refactor -set-coding-system
* Do not use revert when the file does not exist yet
* Refactor -set-coding-system
commit
9605f6bf4408e4a5025dc6862fba96de347b9332
Author: 10sr <8.slashes@gmail.com>
Date: Thu Dec 24 05:26:25 2020 +0900
Remove travis.yml (#238)
commit
c73b0cf3fcc4dd5ff1e268d54d20ab6e88cd6b2e
Author: 10sr <8.slashes@gmail.com>
Date: Wed Dec 23 15:36:45 2020 +0900
Update README 2 (#225)
* Update README 2
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* Update README.md
commit
bba5bdaef41895bf528f00923e8f1ce249a93641
Author: 10sr <8.slashes@gmail.com>
Date: Wed Nov 25 15:31:14 2020 +0900
Add github actions badge
commit
ee39cf38f4efda519db947dd850a6522836561c5
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 7 08:00:19 2020 +0900
Do not init submodule in Makefile
commit
4def6c96944c8e704f4424d10fcd1a73076709c6
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 7 07:21:43 2020 +0900
Add Github Actions build.yaml
commit
49cf213f30d027aae34b3d499aa637cb1cca5f38
Author: Brian Leung <
29217594+leungbk@users.noreply.github.com>
Date: Sun Nov 22 07:42:16 2020 -0800
Silence byte-compiler warnings (#235)
Move aliases before their referents
Co-authored-by: 10sr <8.slashes@gmail.com>
commit
d4fabc95b8b2af5d7ead1b1e8065c69d5805d6b4
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 7 07:22:32 2020 +0900
Add Emacs 27.1 to test target (#228)
* Add Emacs 27.1 to travis test target
* Add GitHub Actions build.yaml
* Fix evm 27.1 version
* Remove github actions build.yaml
commit
1defe4a4cd0fa7f57c0013e6efc535bb02f827cd
Author: 10sr <8.slashes@gmail.com>
Date: Fri Jul 31 00:31:28 2020 +0900
Fix references in CHANGELOG (#226)
* Fix issue references in CHANGELOG
* Fix commit reference link
commit
88efaca117ef6abd3bdee39de7b4b64628e59796
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 30 22:37:30 2020 +0900
Update CHANGELOG
commit
c8c7845c73d08bd21235bc79eafa887651990a6f
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 30 22:34:36 2020 +0900
Add doc about make sandbox
commit
8c551d92bacea8d6ea1b73e945ab5600f7608a78
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 30 22:32:29 2020 +0900
Update README to help bootstrap users (#219)
* Update README to help bootstrap users
* Update doc
* Fix doc
* Update
* Updat
commit
c0789e2d537fb609af72a1edf51e1c5e4673ab2e
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 22 23:13:55 2020 +0900
Keep a CHANGELOG (#221)
* Add empty CHANGELOG.md
* Generate CHANGELOG template
```python
#!/usr/bin/env python3
import subprocess
def _get_tag_date(tag):
git_show = subprocess.run(["git", "show", tag, "--format=%cd", ...
..."--date=short", "-s"], capture_output=True)
return git_show.stdout.decode("utf-8").strip()
def main():
git_tag = subprocess.run(["git", "tag"], capture_output=True)
versions = list(reversed([e[1:] for e in git_tag.stdout.decode...
...("utf-8").split("\n") if e]))
for version in versions:
print(f"## [{version}] - {_get_tag_date('v' + version)}")
print()
print()
print(f"[Unreleased]: https://github.com/editorconfig/...
...editorconfig-emacs/compare/v{versions[0]}...HEAD")
for version, version_prev in zip(versions, versions[1:]):
print(f"[{version}]: https://github.com/editorconfig/...
...editorconfig-emacs/compare/v{version_prev}...v{version}")
print(f"[{versions[-1]}]: https://github.com/editorconfig/...
...editorconfig-emacs/releases/tag/v{versions[-1]}")
return
main()
```
* Paste release notes from github releases
* Add release note for unreleased
* Fix line
commit
68e940e0fd312848d18aba93b49285d7a8d74182
Author: 10sr <8.slashes@gmail.com>
Date: Tue May 19 20:28:23 2020 +0900
Add conf-mode abbrev-table definitions (#220)
commit
dc9dc966f973d9e9f2992004beb462bc5813c01c
Author: 10sr <8.slashes@gmail.com>
Date: Wed Feb 12 16:39:43 2020 +0900
Update hook docstrings (#215)
#214
commit
5aa20f73ddbf5df60a9c66b219846d94c9d12a7d
Author: 10sr <8.slashes@gmail.com>
Date: Wed Feb 12 15:56:48 2020 +0900
Define -mode-apply as an interactive command (#216)
commit
39175259174ba0eea3529fc4039fbd90c5990ecc
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 16 17:59:07 2020 +0900
2020
commit
d29d6f1254f018cdc696cf40614e6799e2673f64
Author: 10sr <8.slashes@gmail.com>
Date: Fri Dec 20 16:31:15 2019 +0900
Update README
commit
d24e05ccd13c44380dbbbc4756eb02ede3882b9e
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 23 13:39:46 2019 +0900
Use elisp core by default
Closes #198
commit
42d9b6aebd4488d6862ff39238a284408e5e4370
Author: 10sr <8.slashes@gmail.com>
Date: Fri Dec 20 16:31:40 2019 +0900
Remove a trailing whitespace
commit
347e0171ad3cfcb70c0aca73b7b6fa8a5875dae6
Author: Damien Cassou <damien@cassou.me>
Date: Wed Nov 27 06:29:43 2019 +0100
Fix typos (#212)
Typos found with codespell.
commit
7915da05ee67bf5c5356ddd49400e9facc15d004
Author: 10sr <8.slashes@gmail.com>
Date: Fri Oct 25 16:59:30 2019 +0900
Fix that "?" does not match "/"
commit
480998f061d22444571f05b6c10d190c204c227e
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 23 14:32:21 2019 +0900
Update core-test
commit
63fa8f9e4bc2938e7bc02b97da79335db29bf0e0
Author: 10sr <8.slashes@gmail.com>
Date: Thu Oct 10 13:44:34 2019 +0900
Bump version to v0.8.1
commit
b7d3a15f606582d30590fab8bbf0202fd7351c90
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 8 13:55:05 2019 +0900
Fix support for Emacs<26
commit
19bad72db735c032e773b6201a80a5df2597c0f4
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 8 13:40:49 2019 +0900
Add editorconfig-file-type-emacs-whitelist value
commit
a179c9876f8f1fd343559aad13a32b96a651e86a
Author: 10sr <8.slashes@gmail.com>
Date: Mon Oct 7 22:34:03 2019 +0900
Disallow setting mode when it is not listed in whitelist
commit
cb218f4b5adc10faa2f89c4ec85bfafa7ad0600a
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 8 14:10:09 2019 +0900
Use dist: trusty
commit
ae5fb296026f948103ade4e7e42f3989dda44df7
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 8 14:04:41 2019 +0900
Update travis Emacs26 version
commit
5e9769675fbf76566ca10f30c148f385396796ae
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Mon Jun 17 06:43:54 2019 +0100
Add support for bpftrace-mode (#199)
commit
875088b1c587451916accd2474d57c66d05be1c6
Author: 10sr <8.slashes@gmail.com>
Date: Mon Jun 3 20:24:18 2019 +0900
Add explicit support for rpm-spec-mode
commit
0faf4dc29c6c504a3026601b6035ff0735a0839b
Author: 10sr <8.slashes@gmail.com>
Date: Mon Jun 3 19:28:20 2019 +0900
Make editorconfig-properties-hash permanetn-local
commit
f511979e3c172932ba51b4b8e1172897f786c834
Author: 10sr <8.slashes@gmail.com>
Date: Tue Apr 2 15:55:33 2019 +0900
Update message format for version info
Update message format for version info
commit
efc11ec6fd100b2c19950153b1f6e64d85c36d97
Author: 10sr <8.slashes@gmail.com>
Date: Tue Mar 26 23:20:10 2019 +0900
Make -version print packaging version
commit
c2ea49f01fbdc144e623c30cbb8b6bf4439ac6b5
Author: 10sr <8.slashes@gmail.com>
Date: Tue Mar 26 20:24:31 2019 +0900
Bump version to v0.8.0
(#192)
commit
c6e817a36b2d901a837f373748941ff1246081f8
Author: 10sr <8.slashes@gmail.com>
Date: Sat Mar 23 21:40:49 2019 +0900
Use API to get version info (#193)
commit
0cf6ce9534a35823f534014ec941db2a690f9002
Author: 10sr <8.slashes@gmail.com>
Date: Mon Feb 25 19:49:56 2019 +0900
Use https for melpa badge
commit
695fce14c0f2cfc72520356cc9d6c46ed3fff33a
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 24 14:49:05 2019 +0900
Update plugin-tests submodule
commit
1651d96aa2909d7f49c7e06a893c464e6f1fa2d9
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 24 14:48:26 2019 +0900
Do not update submodule when running tests
commit
ff0ed217461484a45ab8be7a8aa11c8b503f2388
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jan 22 13:59:50 2019 +0900
Use reference link
commit
5632843e840d0e8dee819d283b8d0a2ae88b8fa8
Author: 10sr <8.slashes@gmail.com>
Date: Fri Jan 18 13:17:15 2019 +0900
Update README
commit
570502fdbb5e7634a43178805caae16e709ba9d7
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 17 14:10:15 2019 +0900
Update docstring
commit
b36f495d1510a53c63e42d6f48513b2fc3fc5b45
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 17 12:38:25 2019 +0900
Separate tool functions
commit
f295ca7cb2e64a8312a172b53b5eee7f06f8ac6e
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 17 11:23:49 2019 +0900
Use -*- lexical-binding: t -*-
https://github.com/melpa/melpa/blob/master/...
...CONTRIBUTING.org#fixing-typical-problems
commit
2d342a1dc75d800577526bd5b62e2f2e350f2447
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 17 11:16:59 2019 +0900
Fix function name
commit
ec5576f7a9ae86649332414995124a3355ae5c13
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 17 11:13:37 2019 +0900
Add fixes for package-lint
commit
bd9e60c65cd8dd1fdc0f6fe35b2684bc2c4c2d80
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 17:09:18 2019 +0900
Update README
commit
551fcd4dc2556506e95c26898d864743cfb379c8
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 17:14:18 2019 +0900
Update commentary section
commit
8352b3f1d06aefcc4f8f6b7da760ced921efe93e
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 16:52:49 2019 +0900
Remove comment
commit
51d2849fb6aaf195393f37dfbd1573d0b449df9b
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 16:44:59 2019 +0900
Update year
commit
9b36c88ce02325e755ce07ebbfd6622b67619d63
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 16:43:13 2019 +0900
M-x checkdoc
commit
68d488ee67e6fa06b9b596f178d445b28bab2865
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 16 14:24:46 2019 +0900
Add struct docstring
commit
feddcd841a913b8f1a79251bb347a2d3b00a06ae
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 10 14:40:30 2019 +0900
Remove useless spaces
commit
f735659b421c5f72bc6c137fd7717a1931ce719d
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 10 14:31:53 2019 +0900
Stop using cl-defclass
With Emacs<25 cl-defmethod cannot used for structs
commit
56fa185bcec16e2fb97b71a4e6dee0c5ef2b6256
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 10 14:30:55 2019 +0900
Revert "Add support for Emacs24.5"
This reverts commit
103081756d5d1de03dfa2d9d42b6e4a8581fca29.
commit
026b21393284b9328fec956dae28c26dab1903e6
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 10 14:13:21 2019 +0900
Add support for Emacs24.5
commit
2aabf655a964a7a172de66391cfdd1d598e2e8f1
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jan 10 13:48:52 2019 +0900
Refactor handle lib
commit
d40048455064be9e090828b4cb28f86f922eae85
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jan 9 13:29:46 2019 +0900
Use 0.8.0 for next version
commit
7a17d5ea063030313726104a3a1895bb6eb7021f
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jan 8 16:08:04 2019 +0900
Remove unused tests
commit
4f20ce1e1cbf3de1284f8de988ea12a2dcdfa690
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jan 8 15:58:29 2019 +0900
Get alist result from hash result
commit
69768d1bd108d93d392b2d8eb5750d8b8ddca169
Author: 10sr <8.slashes@gmail.com>
Date: Tue Jan 8 11:27:44 2019 +0900
Implement --hash-merge
commit
c36d66e3421dfbcdfa9f9221b900f3c8fbde8882
Author: 10sr <8.slashes@gmail.com>
Date: Mon Jan 7 20:29:20 2019 +0900
Update get-properties-hash
commit
75d0158b6c5c1723a1d21f8c4ebdc37b91aa9d1c
Author: 10sr <8.slashes@gmail.com>
Date: Mon Jan 7 12:21:09 2019 +0900
Add function to get properties from handlers as hash
commit
e8ac4bf5d3d7e70ea815f68d64933330a7ffc1d9
Author: USAMI Kenta <tadsan@zonu.me>
Date: Tue Dec 25 21:05:37 2018 +0900
Use Markdown's code spans instead of Emacs style `' (#186)
commit
77775d90c383c5ddd0c4f9564d022ef971c9f7c3
Author: 10sr <8.slashes@gmail.com>
Date: Tue Dec 25 11:49:07 2018 +0900
Bump version to 0.7.14 (#185)
commit
e25ac0d49ff1e1982d58198efab35f3bd2c368d4
Author: 10sr <8.slashes@gmail.com>
Date: Mon Dec 17 16:24:27 2018 +0900
Add document for editorconfig-trim-whitespaces-mode
commit
29060e8494a4ee2bccae7114cdf148387bce2f47
Author: 10sr <8.slashes@gmail.com>
Date: Sat Dec 15 16:46:07 2018 +0900
Add variable editorconfig-trim-whitespaces-mode
commit
1327acab8d855d479d9d087129d05de671da8c76
Author: 10sr <8.slashes@gmail.com>
Date: Mon Dec 3 19:41:49 2018 +0900
Use princ instead of message to write to stdout
commit
d22c30f408fb2447047e8413dc5ca435b062b933
Author: 10sr <8.slashes@gmail.com>
Date: Mon Dec 3 18:54:25 2018 +0900
Update core-test submodule
commit
88b2303a1f28a1b257fb5c205fa36428219197e7
Author: Terje Larsen <terlar@gmail.com>
Date: Sat Nov 17 23:16:12 2018 +0100
Use ws-butler when enabled and available.
When having auto-save on and you edit text the cleaning up of
white-space is a bit intrusive and removes the space at the end of the
line where you are writing. `ws-butler-mode` is an alternative that does
take this into account.
commit
550897776f79f4e5395fe00924bdf620982f5b47
Author: 10sr <8.slashes@gmail.com>
Date: Thu Nov 15 16:09:02 2018 +0900
Fix hack-properties-functions example
commit
8241f65395cd78b83a59d5cfc1c682ef1ead90cd
Author: 10sr <8.slashes@gmail.com>
Date: Thu Oct 25 13:21:50 2018 +0900
Fix README and texi
commit
dff69487901d0074b1fdad8c91e69b40e5e6543e
Author: 10sr <8.slashes@gmail.com>
Date: Wed Oct 24 13:41:30 2018 +0900
Update document
commit
9ca51506778b486d947cba5dabd318614ebc5628
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 14:48:34 2018 +0900
Add test for -hack-properties-functions
commit
07ae870dbb2fdc4ec70c440e355bd126d124dce6
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 14:27:56 2018 +0900
Call -hack-properties-functions in editorconfig-apply
commit
adfb8c54ba4ea5d52a558bd97221f40a5495e170
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 14:18:46 2018 +0900
Add variable -hack-properties-functions
commit
28c4846e9cac199ff4c357033a80054017687b90
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 14:04:22 2018 +0900
Fix version when -custom-hooks has marked as obsolete
commit
88824e7be5b7492845d914110e07328a93901e05
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 13:56:46 2018 +0900
Update texi for hook name change
commit
e11f186800af869897400eb2be72f7ec4c3379d2
Author: 10sr <8.slashes@gmail.com>
Date: Tue Oct 23 13:51:32 2018 +0900
Use derived-mode-p for major-mode check (#180)
commit
791cb6777301fb22f97538471904188deb4b05ec
Author: 10sr <8.slashes@gmail.com>
Date: Fri Oct 19 19:13:19 2018 +0900
Update README.md for hook name change
commit
1138109d4b29c2c8e8e360f9d9314d7081e4fbb4
Author: 10sr <8.slashes@gmail.com>
Date: Fri Oct 19 19:01:42 2018 +0900
Change hook name -custom-hooks -> -after-apply-functions
With obsolete-variable-alias
commit
ff38e8046be032e0d84a5d326dd68d3f40ea449e
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 25 18:26:43 2018 +0900
Do not call mode func when current mode is a child mode of target (#179)
commit
5fff8e44195d91f967b4bacc2562026c7bcfda01
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 25 15:40:52 2018 +0900
Use file_type_ext for test fixtures
commit
20f627f9caf32d65509a8a536743c5960d52a8e0
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 25 14:19:56 2018 +0900
Do not call major-mode when already enabled (#178)
commit
5a71b05195abc14e84970ba66d4ec2987627266d
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 25 11:55:59 2018 +0900
Make conf-mode used when a file has .editorconfig extension
commit
46fff5b32a0a7b014dda9a970ca99ad8c35a05d3
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 25 11:52:16 2018 +0900
Add file_type_ext to conf-mode keyword
commit
1bbbf78990925bfcb426b2752dc09cfd6ae5ba22
Author: 10sr <8.slashes@gmail.com>
Date: Sat Sep 22 15:25:02 2018 +0900
Rename existing function set-major-mode -> set-major-mode-from-name
commit
780fc5f46ecda16c31c82b03d12ab392576db5f4
Author: 10sr <8.slashes@gmail.com>
Date: Sat Sep 22 15:19:47 2018 +0900
Update doc
commit
82ba59023e3df7560e24dc4a5797bf92bcbc7656
Author: 10sr <8.slashes@gmail.com>
Date: Thu Sep 20 16:54:51 2018 +0900
Set major-mode from file_type_ext value
commit
2fbbea8e862c80ee7c3cc463980b1a20835b0346
Author: 10sr <8.slashes@gmail.com>
Date: Fri Sep 21 13:43:11 2018 +0900
Add ert-test for file_type_ext
commit
7524e641cacbc570a8a4c159fc8d2ef08e753584
Author: 10sr <8.slashes@gmail.com>
Date: Sat Sep 22 17:44:47 2018 +0900
Add ert-test for file_type_emacs (#177)
commit
aeb53c0d1c5dc1bdf854a77ac21d746571b14fa3
Author: 10sr <8.slashes@gmail.com>
Date: Sat Sep 22 17:40:14 2018 +0900
Make `fixtures' a constant (#176)
commit
0f5926619f0d77b0a32fbe17730a2d04d93f1e4e
Author: 10sr <8.slashes@gmail.com>
Date: Tue Sep 4 11:12:01 2018 +0900
Update texi for HTTPS url
commit
29cc1456c06d392bff1368c935083a23f4375274
Author: 10sr <8.slashes@gmail.com>
Date: Mon Sep 3 16:48:36 2018 +0900
Use HTTPS link (#174)
commit
8a602e176a068bc952a685086157a0caf4025806
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 31 14:11:41 2018 +0900
Update doc
commit
b61e4feedb5108e2c555f818251fcb2af3725ba6
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 31 16:40:54 2018 +0900
Update header.txt
commit
8e91d9fe91d39b4984650c487206e138c87f65ca
Author: 10sr <8.slashes@gmail.com>
Date: Fri Aug 31 16:13:56 2018 +0900
Update Makefile for info generation
commit
75698b1b333992b1ee300c1b82e6409297b539ee
Author: 10sr <8.slashes@gmail.com>
Date: Thu Aug 23 13:52:57 2018 +0900
Bump version 0.7.13
commit
5a71d819a6104c9ce8ac7f448579d3380113eed5
Author: 10sr <8.slashes@gmail.com>
Date: Fri Jul 27 15:49:16 2018 +0900
Fix brackets tests (#172)
commit
44ff0c5adcdc6d621967b0861e720c7b16ef3543
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 26 12:50:33 2018 +0900
Clear translate cache on file reload
commit
ca36030e7e1b3f7feadc8cd1788aae4f46f5adfe
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 26 12:30:09 2018 +0900
Remove numeric-range related vairables
commit
c687ecda080521c00ceaa8aec05a7dd8fb2be48a
Author: 10sr <8.slashes@gmail.com>
Date: Thu Jul 26 12:22:08 2018 +0900
Stop checking numeric range separately
commit
2dd122c2bb9bf6fc09a53f32a27c84753465e747
Author: 10sr <8.slashes@gmail.com>
Date: Sun Jul 8 18:00:37 2018 +0900
Disable delete-trailing-whitespace when buffer-read-only is nil
commit
898a6d84041d5c7c562e11ca3ccb59b7b3bd62e8
Author: 10sr <8.slashes@gmail.com>
Date: Sun Jul 8 17:53:50 2018 +0900
Check editorconfig configs when read only state changes
commit
e3e54b58970742f3ef40793a7f5e14850f45f00e
Author: 10sr <8.slashes@gmail.com>
Date: Sun Jul 8 18:10:03 2018 +0900
Add trim-trailing-ws tests
With case where read-only-mode is enabled
commit
1a760c97803abf8471e33c122dbd29987fddb5a5
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jun 20 01:26:01 2018 +0900
Use emacs 26.1 instead of 26-pretest (#166)
commit
808922da89517828d6e8eddb614d3919c94b8b56
Author: 10sr <8.slashes@gmail.com>
Date: Wed Jun 20 01:08:38 2018 +0900
Bump version to 0.7.12
commit
ac553270b14d31d57609de3186b60c6d2b3154e6
Author: 10sr <8.slashes@gmail.com>
Date: Wed May 9 13:28:47 2018 +0900
Fix info top page (#165)
* Fix info top page
* Parametrize texi top title
commit
2a35c763422b59e2e2dcdbd6ca842843672bf155
Author: 10sr <8.slashes@gmail.com>
Date: Wed May 9 11:04:46 2018 +0900
Add commented allow_failure
commit
9f4640807fe33a2021c20c0bd3f3dc076f00a54b
Author: 10sr <8.slashes@gmail.com>
Date: Wed May 9 10:53:58 2018 +0900
Fix batch command for emacs26-pretest testing
commit
8c2357c850782b84d5f90d41503c45d6a136df49
Author: 10sr <8.slashes@gmail.com>
Date: Tue May 8 12:21:58 2018 +0900
Update travis config file
commit
e7286c67000425551b13cc80e2ede5982a6a4649
Author: 10sr <8.slashes@gmail.com>
Date: Mon May 7 14:54:37 2018 +0900
Use whitespace class
commit
09229ed40ef583dc9fd4d8a683d7077ba71e1b09
Author: 10sr <8.slashes@gmail.com>
Date: Mon May 7 13:04:51 2018 +0900
Add test for various normal whitespace
Currently core-handle fails to parse files that contain whitespaces
like line breaks, horizontal space, vertical space, etc.
#161
commit
87fbfa3cea902380db512b7890cda07f872b9a07
Author: 10sr <8.slashes@gmail.com>
Date: Mon May 7 11:52:54 2018 +0900
Remove unused variable
commit
adabfa6aea82255ea603e0cd13c69c43f50fcba8
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 5 02:55:20 2018 +0900
Add .gitignore again
commit
14fbef761792145cc715418de3baae3485d5c386
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 5 02:52:36 2018 +0900
Update texi
commit
c9aafbcb9baceb5d3e7d5300c12788d21f642da4
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 5 02:52:19 2018 +0900
Fix make doc command
commit
61384245f0e0b2185103f2647178cda6ef5586a8
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 5 02:31:03 2018 +0900
Remove .info and add .texi
commit
f8216577840405d6ddf0649bb9f1a2cca8b18f77
Author: 10sr <8.slashes@gmail.com>
Date: Sat May 5 02:30:37 2018 +0900
Remove doc/.gitignore
commit
b3fbb8cb2bc75b1d277a38491418704cffd72e6f
Author: 10sr <8.slashes@gmail.com>
Date: Fri May 4 23:27:03 2018 +0900
Fix Makefile
commit
427ddeed978c6354f0ec33286da1c0bf70ad3a14
Author: 10sr <8.slashes@gmail.com>
Date: Sun Apr 29 14:21:47 2018 +0900
Add doc/.gitignore
commit
31709798cace8eae8c4a8bebb9c25f9f50913506
Author: 10sr <8.slashes@gmail.com>
Date: Sun Apr 29 14:21:25 2018 +0900
docs -> doc
commit
0ce9c9839b72edad9b4cab9ef030173f1bcd37e9
Author: 10sr <8.slashes@gmail.com>
Date: Sat Apr 28 13:46:35 2018 +0900
Add generated info file
commit
5db2fd4c8abce7ca169233dc5cec3c4fdefc017e
Author: 10sr <8.slashes@gmail.com>
Date: Sat Apr 28 13:44:22 2018 +0900
Add make info target
commit
12a79fff988a8385f9762a7db5e51fac334e2135
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Thu Apr 5 19:40:58 2018 -0400
Add tests for lisp-indent-offset ignore
commit
6b92956a84498ace196d58b237602e653e22693c
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Thu Apr 5 19:15:04 2018 -0400
Add variable to disable indent_size when conditions are met for lisp
commit
816bab2d5b6eb7508ce6811e1e116166eca8192c
Author: 10sr <8.slashes@gmail.com>
Date: Fri Mar 30 13:48:30 2018 +0900
Add csharp-mode support (#154)
commit
b405ca428e2a67dd286ae1bd8cd75ac3a5dd6179
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Feb 11 00:50:44 2018 +0900
Fix fnmatch for new cases
commit
4336c8bde838ce991fc0f3c70dd3471b6adb268a
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Feb 11 00:50:23 2018 +0900
Add two test cases for fnmatch
commit
f56964cd65075198b1173d58802666dedc434535
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Feb 10 23:34:10 2018 +0900
Update core-test submodule
commit
ffe4396e53939da21aa6c0edbaf33dfe7a1c1d26
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Nov 7 20:01:20 2017 +0900
Prepare v0.7.11
commit
2cc03ae806ae0d89b0cb6812cc009419656a3055
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Fri Oct 6 00:29:13 2017 -0400
Change hook editorconfig is applied on (#143)
Change from `after-change-major-mode-hook' to
`change-major-mode-after-body-hook' to allow dir-local variables to
take precedence over editorconfig.
Closes #141
commit
9c67d568df7cf2156c07fce2909484c0c68756ef
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Aug 16 13:06:11 2017 +0900
Fix typo
commit
276097b635687dd7d337de96fd74b07b199dc3b5
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Aug 2 18:38:19 2017 +0900
Add apache-mode support (#135)
commit
2e343c46610b6097d8102cff682e6c6f024ada35
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jul 24 19:03:40 2017 +0900
Add file_type_emacs to editorocnfig-conf-mode keywords
commit
8dd4394ab9f3bd00467fc70061d6950461cec6bf
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jul 24 18:48:33 2017 +0900
Add file_type_emacs entry for .editorconfig
commit
489e2e58f19fc07ad0e468c6a444341d9b6ddaa8
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jul 24 18:48:03 2017 +0900
Add file_type_emacs support
commit
599d3791e45fc1be2c7d96661646a5a2ff16ca14
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jul 24 18:14:16 2017 +0900
Add document about file_type_emacs property
commit
edfd7d9819bbac50bf399713d7c71b3af39866cc
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jun 7 23:13:31 2017 +0900
Prepare v0.7.10
commit
12af7738a0a9e9c693e41f55a1b536e4f44030fd
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jun 7 23:12:30 2017 +0900
Add function to open nearest .editorconfig file (#131)
commit
0aeb78198993e803217782b7c8bf6638e5a9fbdc
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jun 7 22:48:47 2017 +0900
Always do submodule update when test-ert
commit
71fc634a96a237a9aa9e25972885e932b5e40377
Author: Simen Heggestøyl <simen@e5r.no>
Date: Thu May 18 13:54:19 2017 +0200
Set `fill-column` directly
Set `fill-column` directly instead of using `set-fill-column`. That
function is useful when used interactively, but when called from Lisp
it’s almost equivalent to just setting `fill-column`
directly, and it avoids showing the “Fill column set
to…” message.
commit
4cda53e796b2d972353cc7d3da7d1d1a571aea6e
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Fri May 12 09:07:21 2017 -0700
Add support for feature mode. (#128)
commit
a3242c35afcab0df8f3fe0a2fae4e54d157203b8
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Apr 26 13:55:52 2017 +0900
Update editorconfig-conf-mode lighter text
commit
61911bc92d70abd66acf4d6e648945e2a2a6ec39
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 18 13:25:36 2017 +0900
Fix assignment to free variable warnings
Fixes #127
commit
a3100e700498fcb694948bf26250cfd939031bf7
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Mar 10 13:06:57 2017 +0900
Catch error thrown from editorconfig-custom-hooks
And show it as warning.
commit
c54fd3abe5b8d4a6997de147afbc645896b0d55c
Author: Jay Kamat <jaygkamat@gmail.com>
Date: Wed Feb 22 21:50:06 2017 -0500
Add support for verilog-mode
commit
75f1f7f934fdbe6801596466f6ab176b80f2c069
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Feb 22 00:37:12 2017 +0900
Prepare v0.7.9
Closes #122
commit
ed06e323f9953c60d9cb32d42700407ec50c7327
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Feb 22 00:38:08 2017 +0900
Update year in copyright
commit
3e2ec93953f6666bcca3c0b4b5252524cd3d7edd
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jan 13 13:02:04 2017 +0900
Update README for some variables
commit
399451141873347e974ee1c2cd2f13c1ee070ffc
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jan 4 14:24:22 2017 +0900
By default always use Emacs Lisp Core when accessing remote files (#118)
commit
426699c7c7944438cfc6481fd06cd4610f5d3881
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Jan 3 15:17:53 2017 +0900
Add more plugin tests
commit
dbfe7a208ac799069e723e46b77715436ae18b33
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Jan 3 14:38:22 2017 +0900
Add plugin-tests submodule
commit
0496bfa0e5a74062513e9af106693afefb7d17ae
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Jan 3 14:03:45 2017 +0900
Fix indentations of ert-tests/
See #111
commit
b6b64127d7f489a48f0761f4446b11b54e5f2f11
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Dec 12 14:44:41 2016 +0900
Add php-mode to indentation-alist and add a short note
About `php-mode-coding-style'.
They basically do this at mode startup: "if php-mode-coding-style is
'pear' (which it is by default), add a c-style called 'pear' and
switch to it", and that style contains a c-basic-offset value. But
since we're hooking later than that, we're welcome to override
c-basic-offset without any risk.
Also, php-mode suggests manually typing "nxml-mode" and "js2-mode" and
"web-mode" and then "php-mode" etc, to switch editing styles if you
have a document with multiple types of content (which is common in
.php files), and every time you type php-mode, it runs that style
injection again and resets c-basic-offset.
However, editorconfig runs as a hook when the major mode changes,
so it still re-applies the correct offset every time that happens.
See #116 for more details.
commit
daa0c0f096b5bf96f4027d4a006a3e6446c4b932
Author: Hong Xu <hong@topbug.net>
Date: Tue Nov 8 00:09:10 2016 -0800
Add Usami Kenta to the contributor list.
commit
005c313b4eaba2372d31d709899a1f2c33310d0c
Author: Hong Xu <hong@topbug.net>
Date: Tue Nov 8 00:06:51 2016 -0800
Reidentation for all *.el files.
commit
98a370e88960298cfbdb527d40fed3747e41da8a
Author: Hong Xu <hong@topbug.net>
Date: Tue Nov 8 00:01:16 2016 -0800
Massive reformatting of docstrings.
commit
afadf377f9a82a66519189088cadddda376a1c9d
Author: Hong Xu <hong@topbug.net>
Date: Mon Nov 7 23:51:08 2016 -0800
Fix a doc string.
commit
b540d0719fe9b1059781e6cf50b21b333b2c5433
Author: USAMI Kenta <tadsan@zonu.me>
Date: Tue Nov 8 16:13:41 2016 +0900
Add editorconfig-exclude-prefixes (#108)
commit
c545c8842a627b1d63c00280d504247ef2658b3d
Author: Hong Xu <hong@topbug.net>
Date: Sat Nov 5 22:12:33 2016 -0700
Reindent using Emacs-lisp style.
commit
a0b3e7037f1bb043f281e3b08423698976950b33
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 6 13:37:54 2016 +0900
Add one space to editorconfig-mode lighter text
commit
d7bba76ba52fe64840c19bef9938f09ab1f40ca2
Author: Hong Xu <hong@topbug.net>
Date: Sat Nov 5 09:44:41 2016 -0700
Add a :lighter "EditorConfig" for editorconfig-mode.
commit
4e8ed00b9afe73165dc25a222890ceb8fa03ad81
Author: USAMI Kenta <tadsan@zonu.me>
Date: Mon Sep 5 06:31:28 2016 +0900
Modify defgroup tag
commit
79bcc708530a7ed353aafa1e9ca07ff8758e068d
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Aug 9 14:12:21 2016 +0900
Revert "Use truename for editorconfig name" (#106)
* Revert "Use truename for editorconfig name"
This reverts commit
f9edfc16bc5d7e3f795025ac6fa3d6608634e18a.
Not an important thing, and caused a regression reported in #105.
* Bump version to 0.7.8
commit
1c32816351644dd97f4b3c153eb4394bb7b206e7
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Jul 19 21:59:02 2016 +0900
Bump version to 0.7.7
commit
8a5e621265c4a5cb92876015699793f884876769
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jul 8 12:12:30 2016 +0900
Avoid asking coding system when not specified (#102)
Why ?
In short: Emacs always asks which charset to use when
editorconfig-mode is enabled, .editorconfig does not exist and trying
to save files with non-ascii characters. This is an annoying behavior
so stop it.
Calling `set-buffer-file-coding-system` sets the "explicit" flag, and
it is used just before saving files.
When this flag is set but the charset is `undecided`, Emacs asks
users what charset to use for saving files with non-ascii
characters (when this flag is not set Emacs do not ask and decide
to use something automatically, `utf-8` for my environment).
This typically happens when editing files in repositories without
.editorconfig, and it is a bit annoying behavior.
This change makes this plugin not call `set-buffer-file-coding-system`
at all when neither `charset` nor `end_of_line` is provided, thus
Emacs can decide charset automatically when saving files in
repositories without .editorconfig files.
commit
4e65a21fae2c1a9a72c11dbcb73ecec42bf18af9
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jul 6 12:38:00 2016 +0900
Load only editorconfig.el when using sandbox
commit
3739d7316ac29fc42e2438a7a7fe9e9fc2a3c672
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jun 24 15:57:46 2016 +0900
Update README.md
commit
70e85e6153f311d805337302004828e016fa93c0
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jun 24 12:45:38 2016 +0900
Load editorconfig-core explicitly just becore use (#100)
Fix for the case where this plugin is installed with `git clone`.
Additionally, When the core library is not available, it will emit a
more friendly error message like:
Cannot open load file" "no such file or directory" "editorconfig-core"
commit
3dd8b682435e075676a47f2476a5ecb29982e313
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jun 5 13:51:45 2016 +0900
Add editorconfig-conf-mode.el (#97)
And moved some functions and definitions from editorconfig.el
commit
d900f27638d5d4340d38a575fc93b9e2f8455fc6
Author: 10sr <8slashes+git@gmail.com>
Date: Tue May 31 17:40:13 2016 +0900
Simplify definition of string-integer-p (#96)
commit
663019d341fa1ec51be73aa597f378af048bfcf5
Author: 10sr <8slashes+git@gmail.com>
Date: Mon May 16 23:54:24 2016 +0900
Print line number and its content on parse error (#95)
commit
692503ec109764bcd7990de59dc77c44e7fc8fd6
Author: 10sr <8slashes+git@gmail.com>
Date: Thu May 12 01:24:00 2016 +0900
Add a note about deprecating marmalade repository
commit
55ce0fca59669ef85743879a262bfdde7b498805
Author: 10sr <8slashes+git@gmail.com>
Date: Thu May 12 01:20:50 2016 +0900
Add link to Melpa stable
commit
331edef26d059515fb18df3057202be24d51c639
Author: 10sr <8slashes+git@gmail.com>
Date: Wed May 11 18:13:40 2016 +0900
Remove link to Marmalade package repository
Recently we do not update the package in Marmalade repository.
commit
7505fb780ff08cc62f41cb420723f4646ce3fe20
Author: 10sr <8slashes+git@gmail.com>
Date: Thu May 5 21:43:30 2016 +0900
Bump version to 0.7.6
commit
335e70e23df617a8a2b7fe200a3015369e4b78b4
Author: 10sr <8slashes+git@gmail.com>
Date: Thu May 5 21:41:30 2016 +0900
Trivial commentary fix
Two spaces are required after period in Emacs documents.
commit
1c2ce46d3a924c3dd72611799d868be24c8f05d7
Author: 10sr <8slashes+git@gmail.com>
Date: Mon May 2 21:42:16 2016 +0900
Add examples for core-handle members
commit
bf8bfe5f38d33ccfcebf7ee00eae697d90c19f0f
Author: 10sr <8slashes+git@gmail.com>
Date: Mon May 2 20:47:02 2016 +0900
Copy properties alists before using them
commit
d79b9e410aa97292255622236ed2fdcba2b79b03
Author: 10sr <8slashes+git@gmail.com>
Date: Mon May 2 19:32:28 2016 +0900
Use truename for editorconfig name
commit
a4d73a4470b4de57deaafef9fc8988355c95f462
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Apr 22 15:54:40 2016 +0900
Bump version to 0.7.5
commit
19e5f16ab68499a19459c638ecc6c5ed756b7111
Author: Hong Xu <hong@topbug.net>
Date: Thu Apr 14 22:41:08 2016 -0700
Update README: add information about customize-variable.
commit
8e744e00e40b956714f22880b5a747ebb61406a7
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 12 11:23:17 2016 +0900
Use GFM style code block
commit
b9c1318088e07db324fed70cd8ce6eec8ca6956a
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 12 11:19:56 2016 +0900
Update editorconfig group docstring
commit
787889591816ef12bd78968ae5ce25a147bb8a0e
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 12 10:48:44 2016 +0900
Make indentation of sample codes more consistent
commit
eba248e638e83983992f2c02f806f8cb0454f1f1
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 12 10:45:34 2016 +0900
Fix english
commit
24b4910571c042a78c14d57ecd5b1fcb11626ddc
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Apr 11 11:16:10 2016 +0900
Add EditorConfig group definition
commit
b93a7964d43cf6da0d2627c41dcf8445e6109d97
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 5 17:54:33 2016 +0900
Add a comment for contributors
commit
5687b5fc35db617704e76ed06a890b5825ccbb7a
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Apr 11 14:42:20 2016 +0900
Update instructions about core program
commit
02ab02413f0e7a91969d3742bc880745402189b5
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Apr 5 17:51:21 2016 +0900
Add Customize section to README
commit
2afc760475be59fe1105f8824fa1fb8ebdf01fc2
Author: Hong Xu <hong@topbug.net>
Date: Wed Apr 6 00:48:17 2016 -0700
Only set fill-column if the given integer is positive.
commit
73b4b61e0bad2c7c74fb46baa040f0c677b94068
Author: Hong Xu <hong@topbug.net>
Date: Sun Apr 3 17:41:26 2016 -0700
No need to explicitly highlight the comments via font-lock
in editorconfig-conf-mode
commit
d9ae054ccc608289654bea018a099a1e73dace12
Author: Hong Xu <hong@topbug.net>
Date: Sun Apr 3 17:36:43 2016 -0700
Create a syntax table for editorconfig-conf-mode.
Fix #83.
commit
3d6df2ae193aea34f6ddd481fc17381f235b3838
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Apr 2 23:56:04 2016 +0900
Derive editorconfig-conf-mode from conf-unix-mode
Should fix #83
commit
cdcc5826d684324701ba446c1648d475ce47d5a6
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Apr 1 15:38:17 2016 +0900
Add make sandbox target
This commit adds a new Make target `sandbox`.
Issue `make sandbox` to start new Emacs that loads *.el files in current
directory and does not load the user init file.
commit
e68384d544c14451e12c50b4bad6933b31abde24
Author: Hong Xu <hong@topbug.net>
Date: Thu Mar 31 22:50:17 2016 -0700
Refactor editorconfig-conf-mode
commit
f2629b0abb5e212a015a10af460569b1dec3de29
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Mar 30 17:27:15 2016 +0900
Do not check metadata of files other than editorconfig.el
commit
998d0e8f766dfdf92080e3f00d78e614ea136ae7
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Mar 30 15:41:38 2016 +0900
Bump version to 0.7.4
Only Package-Version in editoroconfig.el will be respected so remove
from other files.
commit
64a2a85351db22d76f1dd510469b94cf61a5ba54
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Mar 30 15:40:36 2016 +0900
Fix dependencies for one multifile package
commit
566ab7996e373cf7747f3856b0b4e67d8c26f17d
Author: Hong Xu <hong@topbug.net>
Date: Sat Mar 26 17:04:43 2016 -0700
Bump required editorconfi-core version
Fix #80
commit
0791fced08790eceb64e5e9d3e46b444b71e0753
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Mar 20 01:58:51 2016 +0900
Add editorconfig-exclude-modes
commit
33b0716c668685e177ffbe28efb7a95011b405b1
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Mar 18 12:21:40 2016 +0900
Add editorocnfig-display-current-properties
A function useful for debugging.
commit
50df3046e5af9c0edde66d4ba2cfe662144a538b
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Mar 18 11:55:30 2016 +0900
Add one variable editorconfig-properties-hash
commit
3480bcd04e3e941d969439ed278fbb2aa7dea8ad
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Feb 18 01:07:31 2016 +0900
Add editorconfig-conf-mode
A major-mode for editing .editorconfig file.
commit
914720911131a54989d3b6403a428b397466fe01
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Feb 12 18:06:39 2016 +0900
Bump version to v0.7.3
commit
dbc25e04c487aeb7e879f4c8a3f1950e856acd8a
Author: Hong Xu <hong@topbug.net>
Date: Sat Feb 6 21:07:06 2016 -0800
Add octave-mode and matlab-mode support
Close #66
commit
f34c82709e2873eefa50f0c7568772b546019197
Author: Hong Xu <hong@topbug.net>
Date: Wed Feb 3 22:12:39 2016 -0800
Add support for scss-mode
commit
37d22c075078b32f8d75c2e2f0339d7a9760eeb3
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jan 27 15:35:49 2016 +0900
Bump version to 0.7.2
commit
f907c968c8835a980fbf0896b8e7ca81aca40d65
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Jan 27 15:30:28 2016 +0900
Already 2016 :) Happy new year!
commit
953f4f0ab77bac932eba074cd1aab70059f3a4a1
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 24 21:51:53 2016 +0900
Bump version: 0.7.1
commit
d150069fc617a3daad2d698436e51786151c78dd
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 24 18:40:36 2016 +0900
Catch error thrown from get-properties-function and display it
This commit also fixes `display-warning' usage.
commit
6fbb3fe14ada3e9dbf84bf29f9223a2857e55c03
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 24 17:41:25 2016 +0900
Throw error when editorconfig executable was not found
commit
a7ea6807e5aa2e1bae5bf482adcdfd8f9a46425a
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 24 16:29:32 2016 +0900
Add ess-mode indentation support
commit
5b9a1a38d2b0c45bdd69e6d64cd4273eec95bdd9
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 24 00:23:34 2016 +0900
Add ps-mode indentation support
commit
9e1b9009578934c0ec1c7721ccb0c234c93aa634
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Jan 23 19:23:14 2016 +0900
Add tcl-mode indentation support
commit
13956895101c2935dd00aff53e10e067db1272ad
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jan 22 14:47:51 2016 +0900
editorocnfig-core: Throw error when parsing .editorconfig failed
commit
58b060cf3413b713015b62aec847fb66402b497a
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Jan 21 20:08:31 2016 +0900
Remove find-file-hook
commit
563bebc5663b12589c713fc55080cce3fbbcd164
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Jan 21 02:10:27 2016 +0900
I forgot to update editorconfig-core-version const
commit
466a0e4a720410d2bf13ebacecfd3ef53f8e6041
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 17 14:40:03 2016 +0900
Bump version: 0.7.0
commit
adb9ba4a9d7559342934216bc1565e1ddbb4b1a7
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 17 02:49:13 2016 +0900
Update README for charset support
commit
d40661e532673d110dce79f40f2c3fcb9ac765a6
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Jan 17 02:48:36 2016 +0900
Support charset property
commit
ae2544b55e9c26d5479bfe16886f09a79aaa08b6
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Jan 15 01:38:19 2016 +0900
Bump version: 0.6.2
Also use stable version in Package-Requires: there should be no
problem with this.
commit
fe9ed9b4cbfda2548c3fc3ca0db6e678a83f9ec7
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jan 11 23:15:18 2016 +0900
Fix names of ert test cases
commit
cd91a226fb792b6b3cbf3aaa05951cdd1ffa091c
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jan 11 23:14:45 2016 +0900
Check package metadata using ert framework
commit
12f18b061a562d2fabea0b4cba1b2726db7a721e
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Jan 11 22:34:52 2016 +0900
Use dedicated functions to manipulate hook
commit
ae1254a7aa76f160578446dc5ead478200735b5d
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Jan 7 19:14:51 2016 +0900
Use hook type for custom-hooks defcustom
commit
58f106454036e2248cec7d4dc4ca53c8fddb71ee
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Dec 27 22:35:38 2015 +0900
Add MELPA badges
commit
9c65aa401996dd87fe054a1079885651529bd70f
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Dec 17 19:31:43 2015 +0900
Use `require` instead of `load` in usage example
commit
48f77abd9040f2eb563efd6185b366cacd8b99de
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Dec 9 01:35:23 2015 +0900
Bump version: 0.6.1
This release is only for melpa stable and has no change since 0.6
commit
ef465f0c5d0cdabbe8ae859d2cbfed018498cc94
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Dec 5 02:42:25 2015 +0900
Add document about running tests
commit
2c3488e82410130bf811291ee07c9e208228a7a8
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Dec 5 01:52:40 2015 +0900
Make `editorconfig-apply' an interactive command
commit
d94e1f29f333bc8e70fda372a0ca906d54eed365
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Dec 4 01:30:24 2015 +0900
Fix some warnings reported by flycheck
Mainly docstring fix
commit
df4dea58f13173bd1f8a2cf59b897e9429add23b
Author: 10sr <8slashes+git@gmail.com>
Date: Fri Dec 4 16:08:10 2015 +0900
Fix editorconfig-core commentary text
commit
2f297a27107c068b802fc92dbe166d4a8fae9e44
Author: 10sr <8slashes+git@gmail.com>
Date: Thu Dec 3 02:12:59 2015 +0900
Add license header to executable
commit
98a42ef7e85c2af1fa84be91ccfb677449ffe9ec
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Dec 1 02:05:08 2015 +0900
Prepare v0.6
commit
320bfe2fa53175b8854cb81d5b008a4592fe475e
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 29 00:18:38 2015 +0900
Fix all indentation according to editorconfig
commit
220f04ad82d8adae6562c036d42d61eb1a01d50f
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 29 01:18:33 2015 +0900
Update README for core elisp
commit
8beaa3e2fc3a3676c5a22b219e6faf80c0a23489
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 29 00:32:53 2015 +0900
Use core in elisp as a fallback
editorconfig-core-get-properties-hash will be called when editorconfig
executable is not found.
commit
8555cc5e7181da63c93ab41c1fadc9c8d3ae2224
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Nov 28 23:55:19 2015 +0900
Update Makefile to run all tests including core
commit
e3fe4530edab8b748415f25df5f173b82dc503f5
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Nov 28 23:30:57 2015 +0900
Add editorconfig-core el files
commit
0b236465262048ff9143af337013becf324a3188
Author: 10sr <8slashes+git@gmail.com>
Date: Wed Nov 25 12:08:39 2015 +0900
Add files used to test core functions
commit
cc948068c916e854561933a5857a5fbb55aeaa26
Author: 10sr <8slashes+git@gmail.com>
Date: Sat Nov 28 23:35:37 2015 +0900
Update .editorconfig for Makefile and .gitmodules
commit
12f49e98fa559b3055be17ab71f4092f1f078386
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Nov 17 16:36:15 2015 +0900
Do nothing when current buffer does not visit any file
commit
1c7857782098192e8aba314bd7925814e3b4fddb
Author: Hong Xu <hong@topbug.net>
Date: Thu Nov 5 12:43:57 2015 -0800
Add 10sr to the contributor list
commit
d076a16e81db4697be0d8744468906ab110f8b7e
Author: Hong Xu <hong@topbug.net>
Date: Thu Nov 5 00:57:40 2015 -0800
Apply settings on major mode change
commit
e9da0d685d9d7367bce9dc3c572234b23293f0c3
Author: Hong Xu <hong@topbug.net>
Date: Thu Nov 5 00:54:45 2015 -0800
Rename editorconfig-find-file-hook to editorconfig-apply
commit
f61c0e31151381d7dd6efc22afcbb9db20c6cf00
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Nov 2 01:40:55 2015 +0900
Add aliases for obsolete variables and bump version
commit
cfb329dabf54c1c99da3352481d7d819be9f90d7
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 1 20:10:51 2015 +0900
Update README
commit
241554e8881cdc42e8524c16a4c0a39838c2c337
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 1 18:14:39 2015 +0900
Change symbol prefix: edconf -> editorconfig
commit
0a319fab7845153a91fbd12ff1174f2808e2ed2c
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Nov 1 18:11:03 2015 +0900
Add global minor mode
commit
a4b8e55bf4dea4567f165ad5f71694f659610b3d
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Oct 27 22:15:00 2015 -0700
Make EditorConfig core function pluggable
Close #41
Squashed commit of the following:
commit
e91aca6f38d9c42be19cc49aafc75ac086907b00
Author: 10sr <8slashes+git@gmail.com>
Date: Sun Oct 25 03:19:26 2015 +0900
Fix typo in docstring
commit
76ce139cd0a0ff6bc250615ca7bb94868c85c41d
Author: 10sr <8slashes+git@gmail.com>
Date: Tue Oct 13 13:51:13 2015 +0900
Implement edconf-get-properties-from-exec
commit
23baf520c83a7cb68634cd173ce28f9a6842f593
Author: 10sr <8slashes+git@gmail.com>
Date: Mon Oct 12 03:18:54 2015 +0900
Add variable edconf-get-properties-function
commit
46eb2863daa2f391bda9b9f8b0db0db210922b32
Author: USAMI Kenta <tadsan@zonu.me>
Date: Fri Oct 23 01:51:34 2015 +0900
Add autoload cookie
commit
d068ec0546938a0d02b05ac5a75c370962205ed2
Author: USAMI Kenta <tadsan@zonu.me>
Date: Fri Oct 23 01:41:55 2015 +0900
Use \' instead of $
commit
b45ec732a2b59f8b3404ae40a52de0f08471bcb6
Author: Hong Xu <hong@topbug.net>
Date: Mon Mar 16 15:02:01 2015 -0700
Relicense to GPLv3+
commit
871a69ab908cb00e69fa5be0f7e4deaabcbe8b5d
Author: Hong Xu <hong@topbug.net>
Date: Mon Mar 16 14:39:06 2015 -0700
Add Hong Xu to contributor list.
commit
7a7e1544c961ee4659af40e6f59c2777d12ea297
Author: Hong Xu <hong@topbug.net>
Date: Mon Mar 16 14:38:42 2015 -0700
Update a few links in the README
commit
e7a0874591b23885e10dc322211ff9f77b944dae
Author: Hong Xu <hong@topbug.net>
Date: Fri Dec 19 00:33:17 2014 -0800
Add hook mechanism.
commit
c36ed4aeb7096abbe455fd91fd4708a413f0c16f
Author: Hong Xu <hong@topbug.net>
Date: Sat Dec 20 18:04:39 2014 -0800
Version 0.4
commit
6c18a40b51e459b44af380aa42e111870ab9334f
Author: Hong Xu <hong@topbug.net>
Date: Thu Dec 18 23:17:28 2014 -0800
Make edconf-exec-path a customizable variable.
commit
480a6bba4761fe1074bd70b4dc9cb461e50fa3b4
Author: Hong Xu <hong@topbug.net>
Date: Thu Dec 18 22:13:17 2014 -0800
Fix some issues caused by the previous commit.
commit
92519a8c255cfd7d2b730842c7cb00304f992735
Author: Hong Xu <hong@topbug.net>
Date: Thu Dec 18 21:58:11 2014 -0800
Don't set indent size if the given value makes no sense.
commit
9d1d2364313086590d0e578aab5dbaabeaf03ec9
Author: Hong Xu <hong@topbug.net>
Date: Thu Dec 18 21:11:19 2014 -0800
Don't set max_line_length if not specified.
commit
d776cdc5eeedcac6a58fa50ea685275d6fec40e6
Author: Hong Xu <hong@topbug.net>
Date: Thu Dec 18 21:02:28 2014 -0800
Support max_line_length.
commit
56722d34df673387597dd68e3dd2c179fb0fcb96
Author: Hong Xu <hong@topbug.net>
Date: Mon Aug 11 09:32:49 2014 -0700
Add sh-indentation to the list of indent variable.
commit
6bdcaf89dff0ec33ccb82cd8c82658ae8a66c4e0
Author: Hong Xu <hong@topbug.net>
Date: Tue Jul 8 14:38:52 2014 -0700
Add cmake-mode support.
commit
5bc887b015d0c192133109448debcb1cd0a7b575
Author: Hong Xu <hong@topbug.net>
Date: Wed Oct 16 18:10:24 2013 -0700
Support web-mode.
Fix editorconfig/editorconfig#124
commit
4e2bf3ddd61a87ac30bdfea04d222b8643ffd337
Author: Hong Xu <hong@topbug.net>
Date: Thu Jun 6 17:50:32 2013 -0700
Add the package manager installation way to README
commit
ac28a9fd1d5b4bd0130fe78d3428cc1e93bbff7a
Author: Hong Xu <hong@topbug.net>
Date: Thu Jun 6 17:41:45 2013 -0700
Bump version number
commit
fbe97a082421acf8ea41abee76f6ce223496a628
Author: Hong Xu <hong@topbug.net>
Date: Wed Jun 5 01:06:46 2013 -0700
Wrong way to indent html. Fixes it.
commit
d7a7b6af8e7af9982543df76739be3f50e2bfee9
Author: Hong Xu <hong@topbug.net>
Date: Wed Jun 5 01:02:45 2013 -0700
Add JS and HTML indent settings.
commit
5dfbeb541ec9aa652e5728e7108cedb7c12a0a9b
Author: Hong Xu <hong@topbug.net>
Date: Sun Jun 2 11:58:46 2013 -0700
Fix indentation problem in the source file.
commit
9fdbf9ffddc1758019158328eadf293f6ecb7435
Author: Hong Xu <hong@topbug.net>
Date: Sun Jun 2 11:53:48 2013 -0700
Set indent value for AucTeX
commit
e69ebeeaa1dd8e4769d5a40e25323db8d8672e59
Author: Hong Xu <hong@topbug.net>
Date: Wed May 29 22:30:39 2013 -0700
Reset the indentation rule.
commit
ef90cfda833faeeb8b92cd528bf9523762efa94e
Author: Hong Xu <hong@topbug.net>
Date: Sun May 26 10:32:29 2013 -0700
Update package information.
commit
8ee7d0b5334da68b9147c28465529b07c5010363
Author: Hong Xu <hong@topbug.net>
Date: Sun May 26 00:56:26 2013 -0700
Set indent_size for lisp mode and ruby mode.
commit
45afbe1bc96afb423d42a2f547804f0e11f89f3f
Author: Hong Xu <hong@topbug.net>
Date: Mon Mar 18 10:18:52 2013 -0700
Add a link to `editorconfig.el` in README
commit
10be4fd165d39baa4394e26256f696a39ab01de3
Author: Jonas Bernoulli <jonas@bernoul.li>
Date: Mon Mar 18 05:06:03 2013 +0100
provide feature, use symbol prefix, add commentary,
remove url from summary
commit
a8ca8c46f75e76565d773c44cc9f36169beaa24c
Author: Hong Xu <xuhdev@gmail.com>
Date: Sun Mar 4 12:37:02 2012 +0800
Update EditorConfig Core URL.
commit
c45e871a5d1394e6755fd2202d83cb53ad1b1e04
Author: Hong Xu <xuhdev@gmail.com>
Date: Wed Jan 25 10:57:55 2012 +0800
Add properties link.
commit
d744546fc6864c0a2a4b524804982656988526b9
Author: Hong Xu <xuhdev@gmail.com>
Date: Tue Jan 10 09:41:41 2012 +0800
Add root=true to the top .editorconfig.
commit
68ad326706a14a707395501aeb03b579aef83777
Author: Hong Xu <xuhdev@gmail.com>
Date: Sat Nov 26 11:05:37 2011 +0800
Update EditorConfig url.
commit
38ac90325669f2643c3205715d4b76aa3e1891ca
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Thu Jun 13 14:28:14 2024 -0400
Erase initial commit content
commit
6360e7b904fcadb30678bf7fa740c998976eec75
Author: Trey Hunner <treyhunner@gmail.com>
Date: Fri Nov 4 21:12:11 2011 -0700
Add initial plugin
(cherry picked from commit
f563f0f961068e5732b9770908ebfd915a93fe12)
--- /dev/null
+@dircategory Emacs
+@direntry
+* EditorConfig: (editorconfig). EditorConfig Emacs Plugin.
+@end direntry
+
+@node Top
+@chapter EditorConfig Emacs Plugin
+@anchor{#editorconfig-emacs-plugin}
+This is an @uref{https://editorconfig.org,EditorConfig} plugin for
+@uref{https://www.gnu.org/software/emacs/,Emacs}.
+
+@menu
+* Getting Started::
+* Supported properties::
+* Customize::
+* Troubleshooting::
+* Submitting Bugs and Feature Requests::
+* License::
+@end menu
+
+@node Getting Started
+@section Getting Started
+@anchor{#getting-started}
+
+@menu
+* packageel::
+* use-package::
+* Manual installation::
+@end menu
+
+@node packageel
+@subsection package.el
+@anchor{#package.el}
+This package is available from
+@uref{https://melpa.org/#/editorconfig,MELPA},
+@uref{https://stable.melpa.org/#/editorconfig,MELPA Stable} and
+@uref{http://elpa.nongnu.org/nongnu/editorconfig.html,NonGNU ELPA}.
+Install from these repositories and enable global minor-mode
+@code{editorconfig-mode}:
+
+@verbatim
+(editorconfig-mode 1)
+@end verbatim
+
+Normally, enabling @code{editorconfig-mode} should be enough for this
+plugin to work: all other configurations are optional. This mode sets up
+hooks so that EditorConfig properties will be loaded and applied to the
+new buffers automatically when visiting files.
+
+@node use-package
+@subsection use-package
+@anchor{#use-package}
+If you use
+@uref{https://www.emacswiki.org/emacs/UsePackage,@strong{use-package}},
+add the following to your @code{init.el} file:
+
+@verbatim
+(use-package editorconfig
+ :ensure t
+ :config
+ (editorconfig-mode 1))
+@end verbatim
+
+@node Manual installation
+@subsection Manual installation
+@anchor{#manual-installation}
+Copy all @code{.el} files in this repository to @code{~/.emacs.d/lisp}
+and add the following:
+
+@verbatim
+(add-to-list 'load-path "~/.emacs.d/lisp")
+(require 'editorconfig)
+(editorconfig-mode 1)
+@end verbatim
+
+@node Supported properties
+@section Supported properties
+@anchor{#supported-properties}
+Current Emacs plugin coverage for EditorConfig's
+@uref{https://editorconfig.org/#supported-properties,properties}:
+
+@itemize
+@item
+@code{indent_style}
+@item
+@code{indent_size}
+@item
+@code{tab_width}
+@item
+@code{end_of_line}
+@item
+@code{charset}
+@item
+@code{trim_trailing_whitespace}
+@item
+@code{insert_final_newline = true} is supported
+@item
+@code{insert_final_newline = false}
+is not enforced (as in trailing newlines actually being removed
+automagically), we just buffer-locally override any preferences that
+would auto-add them to files @code{.editorconfig} marks as
+trailing-newline-free
+@item
+@code{max_line_length}
+@item
+@code{file_type_ext} (Experimental)
+(See below)
+@item
+@code{file_type_emacs} (Experimental)
+(See below)
+@item
+@code{root} (only used by EditorConfig core)
+@end itemize
+
+Not yet covered properties marked with over-strike -- pull requests
+implementing missing features warmly welcomed! Typically, you will want
+to tie these to native functionality, or the configuration of existing
+packages handling the feature.
+
+As several packages have their own handling of, say, indentation, we
+might not yet cover some mode you use, but we try to add the ones that
+show up on our radar.
+
+@menu
+* File Type file_type_ext file_type_emacs::
+@end menu
+
+@node File Type file_type_ext file_type_emacs
+@subsection File Type (file_type_ext, file_type_emacs)
+@anchor{#file-type-file_type_ext-file_type_emacs}
+File-type feature is currently disabled, because this package is now
+undergoing big internal refactoring. For those who want this
+functionality, please consider using
+@uref{https://github.com/10sr/editorconfig-custom-majormode-el,editorconfig-custom-majormode}.
+
+@node Customize
+@section Customize
+@anchor{#customize}
+@code{editorconfig-emacs} provides some customize variables.
+
+Here are some of these variables: for the full list of available
+variables, type M-x customize-group [RET] editorconfig [RET].
+
+@menu
+* editorconfig-trim-whitespaces-mode::
+* editorconfig-after-apply-functions::
+* editorconfig-hack-properties-functions::
+@end menu
+
+@node editorconfig-trim-whitespaces-mode
+@subsection @code{editorconfig-trim-whitespaces-mode}
+@anchor{#editorconfig-trim-whitespaces-mode}
+Buffer local minor-mode to use to trim trailing whitespaces.
+
+If set, editorconfig will enable/disable this mode in accord with
+@code{trim_trailing_whitespace} property in @code{.editorconfig}.
+Otherwise, use Emacs built-in @code{delete-trailing-whitespace}
+function.
+
+One possible value is
+@uref{https://github.com/lewang/ws-butler,@code{ws-butler-mode}}, with
+which only lines touched get trimmed. To use it, add following to your
+init.el:
+
+@verbatim
+(setq editorconfig-trim-whitespaces-mode
+ 'ws-butler-mode)
+@end verbatim
+
+@node editorconfig-after-apply-functions
+@subsection @code{editorconfig-after-apply-functions}
+@anchor{#editorconfig-after-apply-functions}
+(Formerly @code{editorconfig-custom-hooks})
+
+A list of functions which will be called after loading common
+EditorConfig settings, when you can set some custom variables.
+
+For example, @code{web-mode} has several variables for indentation
+offset size and EditorConfig sets them at once by @code{indent_size}.
+You can stop indenting only blocks of @code{web-mode} by adding
+following to your init.el:
+
+@verbatim
+(add-hook 'editorconfig-after-apply-functions
+ (lambda (props) (setq web-mode-block-padding 0)))
+@end verbatim
+
+@node editorconfig-hack-properties-functions
+@subsection @code{editorconfig-hack-properties-functions}
+@anchor{#editorconfig-hack-properties-functions}
+A list of functions to alter property values before applying them.
+
+These functions will be run after loading ".editorconfig" files and
+before applying them to current buffer, so that you can alter some
+properties from ".editorconfig" before they take effect.
+
+For example, Makefile files always use tab characters for indentation:
+you can overwrite "indent_style" property when current @code{major-mode}
+is @code{makefile-mode}:
+
+@verbatim
+(add-hook 'editorconfig-hack-properties-functions
+ '(lambda (props)
+ (when (derived-mode-p 'makefile-mode)
+ (puthash 'indent_style "tab" props))))
+@end verbatim
+
+@node Troubleshooting
+@section Troubleshooting
+@anchor{#troubleshooting}
+Enabling @code{editorconfig-mode} should be enough for normal cases.
+
+When EditorConfig properties are not effective for unknown reason, we
+recommend first trying
+@code{M-x editorconfig-display-current-properties}.
+
+This command will open a new buffer and display the EditorConfig
+properties loaded for current buffer. You can check if EditorConfig
+properties were not read for buffers at all, or they were loaded but did
+not take effect for some other reasons.
+
+@menu
+* Indentation for new major-modes::
+* Not work at all for FOO-mode!::
+@end menu
+
+@node Indentation for new major-modes
+@subsection Indentation for new major-modes
+@anchor{#indentation-for-new-major-modes}
+Because most Emacs major-modes have their own indentation settings, this
+plugin requires explicit support for each major-mode for
+@code{indent_size} property.
+
+By default this plugin ships with settings for many major-modes, but,
+sorry to say, it cannot be perfect. Especially it is difficult to
+support brand-new major-modes. Please feel free to submit issue or
+pull-request for such major-mode!
+
+Supported major-modes and their indentation configs are defined in the
+variable @code{editorconfig-indentation-alist}.
+
+@node Not work at all for FOO-mode!
+@subsection Not work at all for FOO-mode!
+@anchor{#not-work-at-all-for-foo-mode}
+Most cases properties are loaded just after visiting files when
+@code{editorconfig-mode} is enabled. But it is known that there are
+major-modes that this mechanism does not work for and require explicit
+call of @code{editorconfig-apply}.
+
+Typically it will occur when the major-mode is not defined using
+@code{define-derived-mode} (@code{rpm-spec-mode} is an example for
+this). Please feel free to submit issues if you find such modes!
+
+@node Submitting Bugs and Feature Requests
+@section Submitting Bugs and Feature Requests
+@anchor{#submitting-bugs-and-feature-requests}
+Bugs, feature requests, and other issues should be submitted to the
+issue tracker: https://github.com/editorconfig/editorconfig-emacs/issues
+
+@menu
+* Development::
+@end menu
+
+@node Development
+@subsection Development
+@anchor{#development}
+Make and @uref{https://cmake.org,CMake} must be installed to run the
+tests locally:
+
+@verbatim
+$ make check
+@end verbatim
+
+To start a new Emacs process with current @code{*.el} and without
+loading user init file, run:
+
+@verbatim
+$ make sandbox
+@end verbatim
+
+@node License
+@section License
+@anchor{#license}
+EditorConfig Emacs Plugin is free software: you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see @url{https://www.gnu.org/licenses/}.
+
+@bye
--- /dev/null
+;;; editorconfig-conf-mode.el --- Major mode for editing .editorconfig files -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; Author: EditorConfig Team <editorconfig@googlegroups.com>
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Major mode for editing .editorconfig files.
+
+;;; Code:
+
+(require 'conf-mode)
+
+(defvar editorconfig-conf-mode-syntax-table
+ (let ((table (make-syntax-table conf-unix-mode-syntax-table)))
+ (modify-syntax-entry ?\; "<" table)
+ table)
+ "Syntax table in use in `editorconfig-conf-mode' buffers.")
+
+(defvar editorconfig-conf-mode-abbrev-table nil
+ "Abbrev table in use in `editorconfig-conf-mode' buffers.")
+(define-abbrev-table 'editorconfig-conf-mode-abbrev-table ())
+
+;;;###autoload
+(define-derived-mode editorconfig-conf-mode conf-unix-mode "Conf[EditorConfig]"
+ "Major mode for editing .editorconfig files."
+ (set-variable 'indent-line-function 'indent-relative)
+ (let ((key-property-list
+ '("charset"
+ "end_of_line"
+ "file_type_emacs"
+ "file_type_ext"
+ "indent_size"
+ "indent_style"
+ "insert_final_newline"
+ "max_line_length"
+ "root"
+ "tab_width"
+ "trim_trailing_whitespace"))
+ (key-value-list
+ '("unset"
+ "true"
+ "false"
+ "lf"
+ "cr"
+ "crlf"
+ "space"
+ "tab"
+ "latin1"
+ "utf-8"
+ "utf-8-bom"
+ "utf-16be"
+ "utf-16le"))
+ (font-lock-value
+ '(("^[ \t]*\\[\\(.+?\\)\\]" 1 font-lock-type-face)
+ ("^[ \t]*\\(.+?\\)[ \t]*[=:]" 1 font-lock-variable-name-face))))
+
+ ;; Highlight all key values
+ (dolist (key-value key-value-list)
+ (push `(,(format "[=:][ \t]*\\(%s\\)\\([ \t]\\|$\\)" key-value)
+ 1 font-lock-constant-face)
+ font-lock-value))
+ ;; Highlight all key properties
+ (dolist (key-property key-property-list)
+ (push `(,(format "^[ \t]*\\(%s\\)[ \t]*[=:]" key-property)
+ 1 font-lock-builtin-face)
+ font-lock-value))
+
+ (conf-mode-initialize "#" font-lock-value)))
+
+;;;###autoload
+(add-to-list 'auto-mode-alist '("\\.editorconfig\\'" . editorconfig-conf-mode))
+
+(provide 'editorconfig-conf-mode)
+;;; editorconfig-conf-mode.el ends here
--- /dev/null
+;;; editorconfig-core-handle.el --- Handle Class for EditorConfig File -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; Author: EditorConfig Team <editorconfig@googlegroups.com>
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Handle structures for EditorConfig config file. This library is used
+;; internally from editorconfig-core.el .
+
+;;; Code:
+
+(require 'cl-lib)
+
+(require 'editorconfig-fnmatch)
+
+(defvar editorconfig-core-handle--cache-hash
+ (make-hash-table :test 'equal)
+ "Hash of EditorConfig filename and its `editorconfig-core-handle' instance.")
+
+(cl-defstruct editorconfig-core-handle-section
+ "Structure representing one section in a .editorconfig file.
+
+Slots:
+
+`name'
+ String of section name (glob string).
+
+`props'
+ Alist of properties: (KEY . VALUE)."
+ (name nil)
+ (props nil))
+
+(defun editorconfig-core-handle-section-get-properties (section file dir)
+ "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."
+ (when (editorconfig-core-handle--fnmatch-p
+ file (editorconfig-core-handle-section-name section) dir)
+ (editorconfig-core-handle-section-props section)))
+
+(cl-defstruct editorconfig-core-handle
+ "Structure representing an .editorconfig file.
+
+Slots:
+`top-props'
+ Alist of top properties like ((\"root\" . \"true\"))
+
+`sections'
+ List of `editorconfig-core-handle-section' structure objects.
+
+`mtime'
+ Last modified time of .editorconfig file.
+
+`path'
+ Absolute path to .editorconfig file.'
+"
+ (top-props nil)
+ (sections nil)
+ (mtime nil)
+ (path nil))
+
+
+(defun editorconfig-core-handle (conf)
+ "Return EditorConfig handle for CONF, which should be a file path.
+
+If CONF does not exist return nil."
+ (when (file-readable-p conf)
+ (let ((cached (gethash conf editorconfig-core-handle--cache-hash))
+ (mtime (nth 5 (file-attributes conf))))
+ (if (and cached
+ (equal (editorconfig-core-handle-mtime cached) mtime))
+ cached
+ (let ((parsed (editorconfig-core-handle--parse-file conf)))
+ (puthash conf
+ (make-editorconfig-core-handle :top-props (plist-get parsed :top-props)
+ :sections (plist-get parsed :sections)
+ :mtime mtime
+ :path conf)
+ editorconfig-core-handle--cache-hash))))))
+
+(defun editorconfig-core-handle-root-p (handle)
+ "Return non-nil if HANDLE represent root EditorConfig file.
+
+If HANDLE is nil return nil."
+ (when handle
+ (string-equal "true"
+ (downcase (or (cdr (assoc "root"
+ (editorconfig-core-handle-top-props handle)))
+ "")))))
+
+(defun editorconfig-core-handle-get-properties (handle file)
+ "Return list of alist of properties from HANDLE for FILE.
+The list returned will be ordered by the lines they appear.
+
+If HANDLE is nil return nil."
+ (when handle
+ (let ((dir (file-name-directory (editorconfig-core-handle-path handle))))
+ (cl-loop for section in (editorconfig-core-handle-sections handle)
+ for props = (editorconfig-core-handle-section-get-properties section
+ file
+ dir)
+ 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)
+ "Return hash of properties from HANDLE for FILE.
+
+If HANDLE is nil return nil."
+ (when handle
+ (let ((hash (make-hash-table))
+ (dir (file-name-directory (editorconfig-core-handle-path
+ handle))))
+ (dolist (section (editorconfig-core-handle-sections handle))
+ (cl-loop for (key . value) in (editorconfig-core-handle-section-get-properties section file dir)
+ do (puthash (intern key) value hash)))
+ hash)))
+
+(defun editorconfig-core-handle--fnmatch-p (name pattern dir)
+ "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))))
+
+(defsubst editorconfig-core-handle--string-trim (str)
+ "Remove leading and trailing whitespaces from STR."
+ (replace-regexp-in-string "[[:space:]]+\\'"
+ ""
+ (replace-regexp-in-string "\\`[[:space:]]+"
+ ""
+ str)))
+
+(defun editorconfig-core-handle--parse-file (conf)
+ "Parse EditorConfig file CONF.
+
+This function returns cons of its top properties alist and
+alist of patterns and its properties alist.
+The list returned will be ordered by the lines they appear.
+
+If CONF is not found return nil."
+ (when (file-readable-p conf)
+ (with-temp-buffer
+ ;; NOTE: Use this instead of insert-file-contents-literally to enable
+ ;; code conversion
+ (insert-file-contents conf)
+ (goto-char (point-min))
+ (let ((point-max (point-max))
+ (sections ())
+ (top-props nil)
+
+ ;; String of current line
+ (line "")
+ ;; nil when pattern not appeared yet, "" when pattern is empty ("[]")
+ (pattern nil)
+ ;; Alist of properties for current PATTERN
+ (props ())
+
+ ;; Current line num
+ (current-line-number 1))
+ (while (not (eq (point) point-max))
+ (setq line
+ (buffer-substring-no-properties (line-beginning-position)
+ (line-end-position)))
+ (setq line
+ (replace-regexp-in-string "\\(^\\| \\)\\(#\\|;\\).*$"
+ ""
+ (editorconfig-core-handle--string-trim line)))
+
+ (cond
+ ((string-equal "" line)
+ nil)
+
+ ;; Start of section
+ ((string-match "^\\[\\(.*\\)\\]$"
+ line)
+ (when pattern
+ (setq sections
+ `(,@sections ,(make-editorconfig-core-handle-section
+ :name pattern
+ :props props)))
+ (setq pattern nil)
+ (setq props nil))
+ (setq pattern (match-string 1 line)))
+
+ (t
+ (let ((idx (string-match "=\\|:" line)))
+ (unless idx
+ (error "Error while reading config file: %s:%d:\n %s\n"
+ conf current-line-number line))
+ (let ((key (downcase (editorconfig-core-handle--string-trim
+ (substring line 0 idx))))
+ (value (editorconfig-core-handle--string-trim
+ (substring line (1+ idx)))))
+ (when (and (< (length key) 51)
+ (< (length value) 256))
+ (if pattern
+ (when (< (length pattern) 4097)
+ (setq props
+ `(,@props (,key . ,value))))
+ (setq top-props
+ `(,@top-props (,key . ,value)))))))))
+ (setq current-line-number (1+ current-line-number))
+ (goto-char (point-min))
+ (forward-line (1- current-line-number)))
+ (when pattern
+ (setq sections
+ `(,@sections ,(make-editorconfig-core-handle-section
+ :name pattern
+ :props props))))
+ (list :top-props top-props
+ :sections sections)))))
+
+(provide 'editorconfig-core-handle)
+;;; editorconfig-core-handle.el ends here
--- /dev/null
+;;; editorconfig-core.el --- EditorConfig Core library in Emacs Lisp -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; Author: EditorConfig Team <editorconfig@googlegroups.com>
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; This library is one implementation of EditorConfig Core, which parses
+;; .editorconfig files and returns properties for given files.
+;; This can be used in place of, for example, editorconfig-core-c.
+
+
+;; Use from EditorConfig Emacs Plugin
+
+;; Emacs plugin (v0.5 or later) can utilize this implementation.
+;; By default, the plugin first search for any EditorConfig executable,
+;; and fallback to this library if not found.
+;; If you always want to use this library, add following lines to your init.el:
+
+;; (setq editorconfig-get-properties-function
+;; 'editorconfig-core-get-properties-hash)
+
+
+;; 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.
+
+;; This function is almost same as `editorconfig-core-get-properties', but
+;; returns hash object instead.
+
+;;; Code:
+
+(require 'cl-lib)
+
+(require 'editorconfig-core-handle)
+
+(eval-when-compile
+ (require 'subr-x))
+
+
+(defun editorconfig-core--get-handles (dir confname &optional result)
+ "Get list of EditorConfig handlers for DIR from CONFNAME.
+
+In the resulting list, the handle for root config file comes first, and the
+nearest comes last.
+The list may contains nil when no file was found for directories.
+RESULT is used internally and normally should not be used."
+ (setq dir (expand-file-name dir))
+ (let ((handle (editorconfig-core-handle (concat (file-name-as-directory dir)
+ confname)))
+ (parent (file-name-directory (directory-file-name dir))))
+ (if (or (string= parent dir)
+ (and handle (editorconfig-core-handle-root-p handle)))
+ (cl-remove-if-not 'identity (cons handle result))
+ (editorconfig-core--get-handles parent
+ confname
+ (cons handle result)))))
+
+;;;###autoload
+(defun editorconfig-core-get-nearest-editorconfig (directory)
+ "Return path to .editorconfig file that is closest to DIRECTORY."
+ (when-let* ((handle (car (last
+ (editorconfig-core--get-handles directory
+ ".editorconfig")))))
+ (editorconfig-core-handle-path handle)))
+
+;;;###autoload
+(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.
+
+This is a destructive function, hash INTO will be modified.
+When the same key exists in both two hashes, values of UPDATE takes precedence."
+ (maphash (lambda (key value) (puthash key value into)) update)
+ into)
+
+;;;###autoload
+(defun editorconfig-core-get-properties-hash (&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 is almost same as `editorconfig-core-get-properties', but returns
+hash object instead."
+ (setq file
+ (expand-file-name (or file
+ buffer-file-name
+ (error "FILE is not given and `buffer-file-name' is nil"))))
+ (setq confname (or confname ".editorconfig"))
+ (setq confversion (or confversion "0.12.0"))
+ (let ((result (make-hash-table)))
+ (dolist (handle (editorconfig-core--get-handles (file-name-directory file)
+ confname))
+ (editorconfig-core--hash-merge result
+ (editorconfig-core-handle-get-properties-hash handle
+ file)))
+
+ ;; Downcase known boolean values
+ (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)))
+ ;; 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)))
+ ;; 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)))
+
+ result))
+
+(provide 'editorconfig-core)
+;;; editorconfig-core.el ends here
--- /dev/null
+;;; editorconfig-fnmatch.el --- Glob pattern matching in Emacs lisp -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; Author: EditorConfig Team <editorconfig@googlegroups.com>
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; editorconfig-fnmatch.el provides a fnmatch implementation with a few
+;; extensions.
+;; The main usage of this library is glob pattern matching for EditorConfig, but
+;; it can also act solely.
+
+;; editorconfig-fnmatch-p (name pattern)
+
+;; Test whether NAME match PATTERN.
+
+;; PATTERN should be a shell glob pattern, and some zsh-like wildcard matchings
+;; can be used:
+
+;; * Matches any string of characters, except path separators (/)
+;; ** Matches any string of characters
+;; ? Matches any single character
+;; [name] Matches any single character in name
+;; [^name] Matches any single character not in name
+;; {s1,s2,s3} Matches any of the strings given (separated by commas)
+;; {min..max} Matches any number between min and max
+
+
+;; This library is a port from editorconfig-core-py library.
+;; https://github.com/editorconfig/editorconfig-core-py/blob/master/editorconfig/fnmatch.py
+
+;;; Code:
+
+(require 'cl-lib)
+
+(defvar editorconfig-fnmatch--cache-hashtable
+ nil
+ "Cache of shell pattern and its translation.")
+;; Clear cache on file reload
+(setq editorconfig-fnmatch--cache-hashtable
+ (make-hash-table :test 'equal))
+
+
+(defconst editorconfig-fnmatch--left-brace-regexp
+ "\\(^\\|[^\\]\\){"
+ "Regular expression for left brace ({).")
+
+(defconst editorconfig-fnmatch--right-brace-regexp
+ "\\(^\\|[^\\]\\)}"
+ "Regular expression for right brace (}).")
+
+
+(defconst editorconfig-fnmatch--numeric-range-regexp
+ "\\([+-]?[0-9]+\\)\\.\\.\\([+-]?[0-9]+\\)"
+ "Regular expression for numeric range (like {-3..+3}).")
+
+(defun editorconfig-fnmatch--match-num (regexp string)
+ "Return how many times REGEXP is found in STRING."
+ (let ((num 0))
+ ;; START arg does not work as expected in this case
+ (while (string-match regexp string)
+ (setq num (1+ num)
+ string (substring string (match-end 0))))
+ num))
+
+;;;###autoload
+(defun editorconfig-fnmatch-p (string pattern)
+ "Test whether STRING match PATTERN.
+
+Matching ignores case if `case-fold-search' is non-nil.
+
+PATTERN should be a shell glob pattern, and some zsh-like wildcard matchings can
+be used:
+
+* Matches any string of characters, except path separators (/)
+** Matches any string of characters
+? Matches any single character
+[name] Matches any single character in name
+[^name] Matches any single character not in name
+{s1,s2,s3} Matches any of the strings given (separated by commas)
+{min..max} Matches any number between min and max"
+ (string-match (editorconfig-fnmatch-translate pattern)
+ string))
+
+;;(editorconfig-fnmatch-translate "{a,{-3..3}}.js")
+;;(editorconfig-fnmatch-p "1.js" "{a,{-3..3}}.js")
+
+(defun editorconfig-fnmatch-translate (pattern)
+ "Translate a shell PATTERN to a regular expression.
+
+Translation result will be cached, so same translation will not be done twice."
+ (let ((cached (gethash pattern
+ editorconfig-fnmatch--cache-hashtable)))
+ (or cached
+ (puthash pattern
+ (editorconfig-fnmatch--do-translate pattern)
+ editorconfig-fnmatch--cache-hashtable))))
+
+
+(defun editorconfig-fnmatch--do-translate (pattern &optional nested)
+ "Translate a shell PATTERN to a regular expression.
+
+Set NESTED to t when this function is called from itself.
+
+This function is called from `editorconfig-fnmatch-translate', when no cached
+translation is found for PATTERN."
+ (let ((index 0)
+ (length (length pattern))
+ (brace-level 0)
+ (in-brackets nil)
+ ;; List of strings of resulting regexp
+ (result ())
+ (is-escaped nil)
+ (matching-braces (= (editorconfig-fnmatch--match-num
+ editorconfig-fnmatch--left-brace-regexp
+ pattern)
+ (editorconfig-fnmatch--match-num
+ editorconfig-fnmatch--right-brace-regexp
+ pattern)))
+
+ current-char
+ pos
+ has-slash
+ has-comma
+ num-range)
+
+ (while (< index length)
+ (if (and (not is-escaped)
+ (string-match "[^]\\*?[{},/\\-]+"
+ ;;(string-match "[^]\\*?[{},/\\-]+" "?.a")
+ pattern
+ index)
+ (eq index (match-beginning 0)))
+ (setq result `(,@result ,(regexp-quote (match-string 0 pattern)))
+ index (match-end 0)
+ is-escaped nil)
+
+ (setq current-char (aref pattern index)
+ index (1+ index))
+
+ (cl-case current-char
+ (?*
+ (setq pos index)
+ (if (and (< pos length)
+ (= (aref pattern pos) ?*))
+ (setq result `(,@result ".*"))
+ (setq result `(,@result "[^/]*"))))
+
+ (??
+ (setq result `(,@result "[^/]")))
+
+ (?\[
+ (if in-brackets
+ (setq result `(,@result "\\["))
+ (if (= (aref pattern index) ?/)
+ ;; Slash after an half-open bracket
+ (setq result `(,@result "\\[/")
+ index (+ index 1))
+ (setq pos index
+ has-slash nil)
+ (while (and (< pos length)
+ (not (= (aref pattern pos) ?\]))
+ (not has-slash))
+ (if (and (= (aref pattern pos) ?/)
+ (not (= (aref pattern (- pos 1)) ?\\)))
+ (setq has-slash t)
+ (setq pos (1+ pos))))
+ (if has-slash
+ (setq result `(,@result ,(concat "\\["
+ (substring pattern
+ index
+ (1+ pos))
+ "\\]"))
+ index (+ pos 2))
+ (if (and (< index length)
+ (memq (aref pattern index)
+ '(?! ?^)))
+ (setq index (1+ index)
+ result `(,@result "[^"))
+ (setq result `(,@result "[")))
+ (setq in-brackets t)))))
+
+ (?-
+ (if in-brackets
+ (setq result `(,@result "-"))
+ (setq result `(,@result "\\-"))))
+
+ (?\]
+ (setq result `(,@result "]")
+ in-brackets nil))
+
+ (?{
+ (setq pos index
+ has-comma nil)
+ (while (and (or (and (< pos length)
+ (not (= (aref pattern pos) ?})))
+ is-escaped)
+ (not has-comma))
+ (if (and (eq (aref pattern pos) ?,)
+ (not is-escaped))
+ (setq has-comma t)
+ (setq is-escaped (and (eq (aref pattern pos)
+ ?\\)
+ (not is-escaped))
+ pos (1+ pos))))
+ (if (and (not has-comma)
+ (< pos length))
+ (let ((pattern-sub (substring pattern index pos)))
+ (setq num-range (string-match editorconfig-fnmatch--numeric-range-regexp
+ pattern-sub))
+ (if num-range
+ (let ((number-start (string-to-number (match-string 1
+ pattern-sub)))
+ (number-end (string-to-number (match-string 2
+ pattern-sub))))
+ (setq result `(,@result ,(concat "\\(?:"
+ (mapconcat 'number-to-string
+ (cl-loop for i from number-start to number-end
+ collect i)
+ "\\|")
+ "\\)"))))
+ (let ((inner (editorconfig-fnmatch--do-translate pattern-sub t)))
+ (setq result `(,@result ,(format "{%s}" inner)))))
+ (setq index (1+ pos)))
+ (if matching-braces
+ (setq result `(,@result "\\(?:")
+ brace-level (1+ brace-level))
+ (setq result `(,@result "{")))))
+
+ (?,
+ (if (and (> brace-level 0)
+ (not is-escaped))
+ (setq result `(,@result "\\|"))
+ (setq result `(,@result "\\,"))))
+
+ (?}
+ (if (and (> brace-level 0)
+ (not is-escaped))
+ (setq result `(,@result "\\)")
+ brace-level (- brace-level 1))
+ (setq result `(,@result "}"))))
+
+ (?/
+ (if (and (<= (+ index 3) (length pattern))
+ (string= (substring pattern index (+ index 3)) "**/"))
+ (setq result `(,@result "\\(?:/\\|/.*/\\)")
+ index (+ index 3))
+ (setq result `(,@result "/"))))
+
+ (t
+ (unless (= current-char ?\\)
+ (setq result `(,@result ,(regexp-quote (char-to-string current-char)))))))
+
+ (if (= current-char ?\\)
+ (progn (when is-escaped
+ (setq result `(,@result "\\\\")))
+ (setq is-escaped (not is-escaped)))
+ (setq is-escaped nil))))
+ (unless nested
+ (setq result `("^" ,@result "\\'")))
+ (apply #'concat result)))
+
+(provide 'editorconfig-fnmatch)
+;;; editorconfig-fnmatch.el ends here
--- /dev/null
+;;; editorconfig-tools.el --- Editorconfig tools -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; Author: EditorConfig Team <editorconfig@googlegroups.com>
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Some utility commands for users, not used from editorconfig-mode.
+
+;;; Code:
+
+(require 'cl-lib)
+
+(eval-when-compile
+ (require 'subr-x))
+
+
+(require 'editorconfig)
+
+;;;###autoload
+(defun editorconfig-apply ()
+ "Get and apply EditorConfig properties to current buffer.
+
+This function does not respect the values of `editorconfig-exclude-modes' and
+`editorconfig-exclude-regexps' and always applies available properties.
+Use `editorconfig-mode-apply' instead to make use of these variables."
+ (interactive)
+ (when buffer-file-name
+ (condition-case err
+ (progn
+ (let ((props (editorconfig-call-get-properties-function buffer-file-name)))
+ (condition-case err
+ (run-hook-with-args 'editorconfig-hack-properties-functions props)
+ (error
+ (display-warning '(editorconfig editorconfig-hack-properties-functions)
+ (format "Error while running editorconfig-hack-properties-functions, abort running hook: %S"
+ err)
+ :warning)))
+ (setq editorconfig-properties-hash props)
+ (editorconfig-set-local-variables props)
+ (editorconfig-set-coding-system-revert
+ (gethash 'end_of_line props)
+ (gethash 'charset props))
+ (condition-case err
+ (run-hook-with-args 'editorconfig-after-apply-functions props)
+ (error
+ (display-warning '(editorconfig editorconfig-after-apply-functions)
+ (format "Error while running editorconfig-after-apply-functions, abort running hook: %S"
+ err)
+ :warning)))))
+ (error
+ (display-warning '(editorconfig editorconfig-apply)
+ (format "Error in editorconfig-apply, styles will not be applied: %S" err)
+ :error)))))
+
+(defun editorconfig-mode-apply ()
+ "Get and apply EditorConfig properties to current buffer.
+
+This function does nothing when the major mode is listed in
+`editorconfig-exclude-modes', or variable `buffer-file-name' matches
+any of regexps in `editorconfig-exclude-regexps'."
+ (interactive)
+ (when (and major-mode
+ (not (editorconfig--disabled-for-majormode major-mode))
+ buffer-file-name
+ (not (editorconfig--disabled-for-filename buffer-file-name)))
+ (editorconfig-apply)))
+
+
+;;;###autoload
+(defun editorconfig-find-current-editorconfig ()
+ "Find the closest .editorconfig file for current file."
+ (interactive)
+ (eval-and-compile (require 'editorconfig-core))
+ (when-let* ((file (editorconfig-core-get-nearest-editorconfig
+ default-directory)))
+ (find-file file)))
+
+;;;###autoload
+(defun editorconfig-display-current-properties ()
+ "Display EditorConfig properties extracted for current buffer."
+ (interactive)
+ (if editorconfig-properties-hash
+ (let ((buf (get-buffer-create "*EditorConfig Properties*"))
+ (file buffer-file-name)
+ (props editorconfig-properties-hash))
+ (with-current-buffer buf
+ (erase-buffer)
+ (insert (format "# EditorConfig for %s\n" file))
+ (maphash (lambda (k v)
+ (insert (format "%S = %s\n" k v)))
+ props))
+ (display-buffer buf))
+ (message "Properties are not applied to current buffer yet.")
+ nil))
+;;;###autoload
+(defalias 'describe-editorconfig-properties
+ 'editorconfig-display-current-properties)
+
+
+(provide 'editorconfig-tools)
+;;; editorconfig-tools.el ends here
--- /dev/null
+;;; editorconfig.el --- EditorConfig Emacs Plugin -*- lexical-binding: t -*-
+
+;; Copyright (C) 2011-2024 EditorConfig Team
+
+;; 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"))
+;; Keywords: convenience editorconfig
+
+;; See
+;; https://github.com/editorconfig/editorconfig-emacs/graphs/contributors
+;; or the CONTRIBUTORS file for the list of contributors.
+
+;; This file is part of EditorConfig Emacs Plugin.
+
+;; EditorConfig Emacs Plugin is free software: you can redistribute it and/or
+;; modify it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or (at your
+;; option) any later version.
+
+;; EditorConfig Emacs Plugin is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+;; Public License for more details.
+
+;; You should have received a copy of the GNU General Public License along with
+;; EditorConfig Emacs Plugin. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; EditorConfig helps developers define and maintain consistent
+;; coding styles between different editors and IDEs.
+
+;; The EditorConfig project consists of a file format for defining
+;; coding styles and a collection of text editor plugins that enable
+;; editors to read the file format and adhere to defined styles.
+;; EditorConfig files are easily readable and they work nicely with
+;; version control systems.
+
+;;; 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))
+
+(require 'editorconfig-core)
+
+(defgroup editorconfig nil
+ "EditorConfig Emacs Plugin.
+
+EditorConfig helps developers define and maintain consistent
+coding styles between different editors and IDEs."
+ :tag "EditorConfig"
+ :prefix "editorconfig-"
+ :group 'tools)
+
+(define-obsolete-variable-alias
+ 'edconf-exec-path
+ 'editorconfig-exec-path
+ "0.5")
+(defcustom editorconfig-exec-path
+ "editorconfig"
+ "Path to EditorConfig executable.
+
+Used by `editorconfig--execute-editorconfig-exec'."
+ :type 'string
+ :group 'editorconfig)
+
+(define-obsolete-variable-alias
+ 'edconf-get-properties-function
+ 'editorconfig-get-properties-function
+ "0.5")
+(defcustom editorconfig-get-properties-function
+ 'editorconfig-core-get-properties-hash
+ "A function which gets EditorConfig properties for specified file.
+
+This function will be called with one argument, full path of the target file,
+and should return a hash object containing properties, or nil if any core
+program is not available. Keys of this hash should be symbols of properties,
+and values should be strings of their values.
+
+
+For example, if you always want to use built-in core library instead
+of any EditorConfig executable to get properties, add following to
+your init.el:
+
+ (set-variable \\='editorconfig-get-properties-function
+ #\\='editorconfig-core-get-properties-hash)
+
+Possible known values are:
+
+* `editorconfig-core-get-properties-hash' (default)
+ * Always use built-in Emacs-Lisp implementation to get properties
+* `editorconfig-get-properties'
+ * Use `editorconfig-get-properties-from-exec' when
+ `editorconfig-exec-path' executable is found, otherwise
+ use `editorconfig-core-get-properties-hash'
+* `editorconfig-get-properties-from-exec'
+ * Get properties by executing EditorConfig executable"
+ :type 'function
+ :group 'editorconfig)
+
+(define-obsolete-variable-alias
+ 'edconf-custom-hooks
+ 'editorconfig-after-apply-functions
+ "0.5")
+(define-obsolete-variable-alias
+ 'editorconfig-custom-hooks
+ 'editorconfig-after-apply-functions
+ "0.7.14")
+(defcustom editorconfig-after-apply-functions ()
+ "A list of functions after loading common EditorConfig settings.
+
+Each element in this list is a hook function. This hook function
+takes one parameter, which is a property hash table. The value
+of properties can be obtained through gethash function.
+
+The hook does not have to be coding style related; you can add
+whatever functionality you want. For example, the following is
+an example to add a new property emacs_linum to decide whether to
+show line numbers on the left:
+
+ (add-hook \\='editorconfig-after-apply-functions
+ \\='(lambda (props)
+ (let ((show-line-num (gethash \\='emacs_linum props)))
+ (cond ((equal show-line-num \"true\") (linum-mode 1))
+ ((equal show-line-num \"false\") (linum-mode 0))))))
+
+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)
+
+(defcustom editorconfig-hack-properties-functions ()
+ "A list of function to alter property values before applying them.
+
+These functions will be run after loading \".editorconfig\" files and before
+applying them to current buffer, so that you can alter some properties from
+\".editorconfig\" before they take effect.
+\(Since 2021/08/30 (v0.9.0): Buffer coding-systems are set before running
+this functions, so this variable cannot be used to change coding-systems.)
+
+For example, Makefiles always use tab characters for indentation: you can
+overwrite \"indent_style\" property when current `major-mode' is a
+`makefile-mode' with following code:
+
+ (add-hook \\='editorconfig-hack-properties-functions
+ \\='(lambda (props)
+ (when (derived-mode-p \\='makefile-mode)
+ (puthash \\='indent_style \"tab\" props))))
+
+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)
+(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:
+ charset values will be referenced before running this hook."
+ "v0.9.0")
+
+(define-obsolete-variable-alias
+ 'edconf-indentation-alist
+ 'editorconfig-indentation-alist
+ "0.5")
+(defcustom editorconfig-indentation-alist
+ ;; For contributors: Sort modes in alphabetical order
+ `((apache-mode apache-indent-level)
+ (bash-ts-mode sh-basic-offset
+ sh-indentation)
+ (bpftrace-mode c-basic-offset)
+ (c++-ts-mode c-basic-offset
+ c-ts-mode-indent-offset)
+ (c-ts-mode c-basic-offset
+ c-ts-mode-indent-offset)
+ (cmake-mode cmake-tab-width)
+ (cmake-ts-mode cmake-tab-width
+ cmake-ts-mode-indent-offset)
+ (csharp-mode c-basic-offset)
+ (csharp-ts-mode c-basic-offset
+ csharp-ts-mode-indent-offset)
+ (emacs-lisp-mode lisp-indent-offset)
+ (ess-mode ess-indent-offset)
+ (feature-mode feature-indent-offset
+ feature-indent-level)
+ (gdscript-mode gdscript-indent-offset)
+ (go-ts-mode go-ts-mode-indent-offset)
+ (hcl-mode hcl-indent-level)
+ (html-ts-mode html-ts-mode-indent-offset)
+ (java-ts-mode c-basic-offset
+ java-ts-mode-indent-offset)
+ (js-mode js-indent-level)
+ (jsonian-mode jsonian-default-indentation)
+ (latex-mode . editorconfig-set-indentation-latex-mode)
+ (lisp-mode lisp-indent-offset)
+ (matlab-mode matlab-indent-level)
+ (octave-mode octave-block-offset)
+ ;; No need to change `php-mode-coding-style' value for php-mode
+ ;; since we run editorconfig later than it resets `c-basic-offset'.
+ ;; See https://github.com/editorconfig/editorconfig-emacs/issues/116
+ ;; for details.
+ (php-mode c-basic-offset)
+ (php-ts-mode php-ts-mode-indent-offset)
+ (ps-mode ps-mode-tab)
+ (ruby-mode ruby-indent-level)
+ (rust-ts-mode rust-indent-offset
+ rust-ts-mode-indent-offset)
+ (scss-mode css-indent-offset)
+ (sgml-mode sgml-basic-offset)
+ (sh-mode sh-indentation)
+ (svelte-mode svelte-basic-offset)
+ (tcl-mode tcl-indent-level
+ tcl-continued-indent-level)
+ (toml-ts-mode toml-ts-mode-indent-offset)
+ (verilog-mode verilog-indent-level
+ verilog-indent-level-behavioral
+ verilog-indent-level-declaration
+ verilog-indent-level-module
+ verilog-cexp-indent
+ verilog-case-indent)
+ (web-mode (web-mode-indent-style . ,(lambda (size) 2))
+ web-mode-markup-indent-offset
+ web-mode-css-indent-offset
+ web-mode-code-indent-offset)
+ (zig-mode zig-indent-offset)
+ )
+ "Alist of indentation setting methods by modes."
+ :risky t)
+
+(defcustom editorconfig-exclude-modes ()
+ "Modes in which `editorconfig-mode-apply' will not run."
+ :type '(repeat (symbol :tag "Major Mode"))
+ :group 'editorconfig)
+
+(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)
+(with-eval-after-load 'recentf
+ (add-to-list 'editorconfig-exclude-regexps
+ (rx-to-string '(seq string-start
+ (eval (expand-file-name recentf-save-file)))
+ t)))
+
+(defcustom editorconfig-trim-whitespaces-mode nil
+ "Buffer local minor-mode to use to trim trailing whitespaces.
+
+If set, enable that mode when `trim_trailing_whitespace` is set to true.
+Otherwise, use `delete-trailing-whitespace'."
+ :type 'symbol
+ :group 'editorconfig)
+
+(defvar editorconfig-properties-hash nil
+ "Hash object of EditorConfig properties that was enabled for current buffer.
+Set by `editorconfig-apply' and nil if that is not invoked in
+current buffer yet.")
+(make-variable-buffer-local 'editorconfig-properties-hash)
+(put 'editorconfig-properties-hash
+ 'permanent-local
+ t)
+
+(defvar editorconfig-lisp-use-default-indent nil
+ "Selectively ignore the value of indent_size for Lisp files.
+Prevents `lisp-indent-offset' from being set selectively.
+
+nil - `lisp-indent-offset' is always set normally.
+t - `lisp-indent-offset' is never set normally
+ (always use default indent for lisps).
+number - `lisp-indent-offset' is not set only if indent_size is
+ equal to this number. For example, if this is set to 2,
+ `lisp-indent-offset' will not be set only if indent_size is 2.")
+
+(defcustom editorconfig-override-file-local-variables t
+ "Non-nil means editorconfig will override file local variable values."
+ :type 'boolean
+ :group 'editorconfig)
+
+(defcustom editorconfig-override-dir-local-variables t
+ "Non-nil means editorconfig will override values defined in dir-locals.el ."
+ :type 'boolean
+ :group 'editorconfig)
+
+(define-error 'editorconfig-error
+ "Error thrown from editorconfig lib")
+
+(defun editorconfig-error (&rest args)
+ "Signal an `editorconfig-error'.
+Make a message by passing ARGS to `format-message'."
+ (signal 'editorconfig-error (list (apply #'format-message args))))
+
+(defun editorconfig--disabled-for-filename (filename)
+ "Return non-nil when EditorConfig is disabled for FILENAME."
+ (cl-assert (stringp filename))
+ (cl-loop for regexp in editorconfig-exclude-regexps
+ if (string-match regexp filename) return t
+ finally return nil))
+
+(defun editorconfig--disabled-for-majormode (majormode)
+ "Return non-nil when Editorconfig is disabled for MAJORMODE."
+ (cl-assert majormode)
+ (or (provided-mode-derived-p majormode 'special-mode)
+ ;; Some special modes (like `archive-mode') are not derived from
+ ;; `special-mode'
+ (eq (get majormode 'mode-class) 'special)
+ (memq majormode
+ editorconfig-exclude-modes)))
+
+(defun editorconfig-string-integer-p (string)
+ "Return non-nil if STRING represents integer."
+ (and (stringp string)
+ (string-match-p "\\`[0-9]+\\'" string)))
+
+(defun editorconfig-set-indentation-latex-mode (size)
+ "Set `latex-mode' indent size to SIZE."
+ (setq-local LaTeX-indent-level size)
+ (setq-local LaTeX-item-indent size)
+ (setq-local TeX-brace-indent-level 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."
+ (display-warning '(editorconfig editorconfig--should-set)
+ (format "symbol: %S | size: %S"
+ symbol
+ size)
+ :debug)
+ (when (and (not editorconfig-override-file-local-variables)
+ (assq symbol file-local-variables-alist))
+ (cl-return-from editorconfig--should-set
+ nil))
+
+ (when (and (not editorconfig-override-dir-local-variables)
+ (assq symbol dir-local-variables-alist))
+ (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)
+ "Set indentation type from STYLE, SIZE and TAB_WIDTH."
+ (setq size
+ (cond ((editorconfig-string-integer-p size)
+ (string-to-number size))
+ ((equal size "tab")
+ "tab")
+ (t
+ nil)))
+ (cond ((not (editorconfig--should-set 'tab-width))
+ nil)
+ )
+
+ (cond ((not (editorconfig--should-set 'indent-tabs-mode))
+ nil)
+ )
+
+ (when (editorconfig--should-set 'evil-shift-width)
+ )
+ )
+
+(defvar-local editorconfig--apply-coding-system-currently nil
+ "Used internally.")
+(put 'editorconfig--apply-coding-system-currently
+ 'permanent-local
+ t)
+
+(defun editorconfig-merge-coding-systems (end-of-line charset)
+ "Return merged coding system symbol of END-OF-LINE and CHARSET."
+ (let ((eol (cond
+ ((equal end-of-line "lf") 'undecided-unix)
+ ((equal end-of-line "cr") 'undecided-mac)
+ ((equal end-of-line "crlf") 'undecided-dos)
+ (t 'undecided)))
+ (cs (cond
+ ((equal charset "latin1") 'iso-latin-1)
+ ((equal charset "utf-8") 'utf-8)
+ ((equal charset "utf-8-bom") 'utf-8-with-signature)
+ ((equal charset "utf-16be") 'utf-16be-with-signature)
+ ((equal charset "utf-16le") 'utf-16le-with-signature)
+ (t 'undecided))))
+ (merge-coding-systems cs eol)))
+
+(cl-defun editorconfig-set-coding-system-revert (end-of-line charset)
+ "Set buffer coding system by END-OF-LINE and CHARSET.
+
+This function will revert buffer when the coding-system has been changed."
+ ;; `editorconfig--advice-find-file-noselect' does not use this function
+ (let ((coding-system (editorconfig-merge-coding-systems end-of-line
+ charset)))
+ (display-warning '(editorconfig editorconfig-set-coding-system-revert)
+ (format "editorconfig-set-coding-system-revert: buffer-file-name: %S | buffer-file-coding-system: %S | coding-system: %S | apply-currently: %S"
+ buffer-file-name
+ buffer-file-coding-system
+ coding-system
+ editorconfig--apply-coding-system-currently)
+ :debug)
+ (when (eq coding-system 'undecided)
+ (cl-return-from editorconfig-set-coding-system-revert))
+ (when (and buffer-file-coding-system
+ (memq buffer-file-coding-system
+ (coding-system-aliases (merge-coding-systems coding-system
+ buffer-file-coding-system))))
+ (cl-return-from editorconfig-set-coding-system-revert))
+ (unless (file-readable-p buffer-file-name)
+ (set-buffer-file-coding-system coding-system)
+ (cl-return-from editorconfig-set-coding-system-revert))
+ (unless (memq coding-system
+ (coding-system-aliases editorconfig--apply-coding-system-currently))
+ ;; Revert functions might call editorconfig-apply again
+ (unwind-protect
+ (progn
+ (setq editorconfig--apply-coding-system-currently coding-system)
+ ;; Revert without query if buffer is not modified
+ (let ((revert-without-query '(".")))
+ (revert-buffer-with-coding-system coding-system)))
+ (setq editorconfig--apply-coding-system-currently nil)))))
+
+(defun editorconfig-set-trailing-nl (final-newline)
+ "Set up requiring final newline by FINAL-NEWLINE.
+
+This function will set `require-final-newline' and `mode-require-final-newline'
+to non-nil when FINAL-NEWLINE is true."
+ (pcase final-newline
+ ("true"
+ )
+ ("false"
+ )))
+
+(defun editorconfig-set-trailing-ws (trim-trailing-ws)
+ (if editorconfig-trim-whitespaces-mode
+ (funcall editorconfig-trim-whitespaces-mode 1)
+ ...)
+ (when editorconfig-trim-whitespaces-mode
+ (funcall editorconfig-trim-whitespaces-mode 0))
+ ...)
+
+(defun editorconfig-set-line-length (length)
+ "Set the max line length (`fill-column') to LENGTH."
+ (when (and (editorconfig-string-integer-p length)
+ (> (string-to-number length) 0))
+ (setq fill-column (string-to-number length))))
+
+
+(defun editorconfig--execute-editorconfig-exec (filename)
+ "Execute EditorConfig core with FILENAME and return output."
+ (if filename
+ (with-temp-buffer
+ (let ((remote (file-remote-p filename))
+ (remote-localname (file-remote-p filename
+ 'localname)))
+ (display-warning '(editorconfig editorconfig--execute-editorconfig-exec)
+ (format "editorconfig--execute-editorconfig-exec: filename: %S | remote: %S | remote-localname: %S"
+ filename
+ remote
+ remote-localname)
+ :debug)
+ (if remote
+ (progn
+ (cd (concat remote "/"))
+ (setq filename remote-localname))
+ (cd "/")))
+ (display-warning '(editorconfig editorconfig--execute-editorconfig-exec)
+ (format "editorconfig--execute-editorconfig-exec: default-directory: %S | filename: %S"
+ default-directory
+ filename
+ )
+ :debug)
+ (if (eq 0
+ (process-file editorconfig-exec-path nil t nil filename))
+ (buffer-string)
+ (editorconfig-error (buffer-string))))
+ ""))
+
+(defun editorconfig--parse-properties (props-string)
+ )
+
+(defun editorconfig-get-properties-from-exec (filename)
+ "Get EditorConfig properties of file FILENAME.
+
+This function uses value of `editorconfig-exec-path' to get properties."
+ (if (executable-find editorconfig-exec-path)
+ (editorconfig--parse-properties (editorconfig--execute-editorconfig-exec filename))
+ (editorconfig-error "Unable to find editorconfig executable")))
+
+(defun editorconfig-get-properties (filename)
+ "Get EditorConfig properties for file FILENAME.
+
+It calls `editorconfig-get-properties-from-exec' if
+`editorconfig-exec-path' is found, otherwise
+`editorconfig-core-get-properties-hash'."
+ (if (and (executable-find editorconfig-exec-path)
+ (not (file-remote-p filename)))
+ (editorconfig-get-properties-from-exec filename)
+ (require 'editorconfig-core)
+ (editorconfig-core-get-properties-hash filename)))
+
+(defun editorconfig-call-get-properties-function (filename)
+ "Call `editorconfig-get-properties-function' with FILENAME and return result.
+
+This function also removes `unset' properties and calls
+`editorconfig-hack-properties-functions'."
+ (unless (functionp editorconfig-get-properties-function)
+ (editorconfig-error "Invalid editorconfig-get-properties-function value"))
+ (if (stringp filename)
+ (setq filename (expand-file-name filename))
+ (editorconfig-error "Invalid argument: %S" filename))
+ (let ((props nil))
+ (condition-case err
+ (setq props (funcall editorconfig-get-properties-function
+ filename))
+ (error
+ (editorconfig-error "Error from editorconfig-get-properties-function: %S"
+ err)))
+ (cl-loop for k being the hash-keys of props using (hash-values v)
+ when (equal v "unset") do (remhash k props))
+ props))
+
+(defun editorconfig-set-local-variables (props)
+ "Set buffer variables according to EditorConfig PROPS."
+ (editorconfig-set-indentation (gethash 'indent_style props)
+ (gethash 'indent_size props)
+ (gethash 'tab_width props))
+ (editorconfig-set-trailing-nl (gethash 'insert_final_newline props))
+ (editorconfig-set-trailing-ws (gethash 'trim_trailing_whitespace props))
+ (editorconfig-set-line-length (gethash 'max_line_length props)))
+
+
+(defun editorconfig-major-mode-hook ()
+ "Function to run when `major-mode' has been changed.
+
+This functions does not reload .editorconfig file, just sets local variables
+again. Changing major mode can reset these variables.
+
+This function also executes `editorconfig-after-apply-functions' functions."
+ (display-warning '(editorconfig editorconfig-major-mode-hook)
+ (format "editorconfig-major-mode-hook: editorconfig-mode: %S, major-mode: %S, -properties-hash: %S"
+ (and (boundp 'editorconfig-mode)
+ editorconfig-mode)
+ major-mode
+ editorconfig-properties-hash)
+ :debug)
+ (when (and (bound-and-true-p editorconfig-mode)
+ editorconfig-properties-hash)
+ (editorconfig-set-local-variables editorconfig-properties-hash)
+ (condition-case err
+ (run-hook-with-args 'editorconfig-after-apply-functions editorconfig-properties-hash)
+ (error
+ (display-warning '(editorconfig editorconfig-major-mode-hook)
+ (format "Error while running `editorconfig-after-apply-functions': %S"
+ err))))))
+
+(defvar editorconfig--filename-codingsystem-hash (make-hash-table :test 'equal)
+ "Used interally.
+
+`editorconfig--advice-find-file-noselect' will put value to this hash, and
+`editorconfig--advice-insert-file-contents' will use the value to set
+`coding-system-for-read' value.")
+
+(defun editorconfig--advice-insert-file-contents (f filename &rest args)
+ "Set `coding-system-for-read'.
+
+This function should be added as an advice function to `insert-file-contents'.
+F is that function, and FILENAME and ARGS are arguments passed to F."
+ ;; This function uses `editorconfig--filename-codingsystem-hash' to decide what coding-system
+ ;; should be used, which will be set by `editorconfig--advice-find-file-noselect'.
+ (display-warning '(editorconfig editorconfig--advice-insert-file-contents)
+ (format "editorconfig--advice-insert-file-contents: filename: %S args: %S codingsystem: %S bufferfilename: %S"
+ filename args
+ editorconfig--filename-codingsystem-hash
+ buffer-file-name)
+ :debug)
+ (let ((coding-system (and (stringp filename)
+ (gethash (expand-file-name filename)
+ editorconfig--filename-codingsystem-hash))))
+ (if (and coding-system
+ (not (eq coding-system
+ 'undecided)))
+ (let ((coding-system-for-read coding-system))
+ (apply f filename args))
+ (apply f filename args))))
+
+(defun editorconfig--advice-find-file-noselect (f filename &rest args)
+ "Get EditorConfig properties and apply them to buffer to be visited.
+
+This function should be added as an advice function to `find-file-noselect'.
+F is that function, and FILENAME and ARGS are arguments passed to F."
+ (let ((props nil)
+ (coding-system nil)
+ (ret nil))
+ (condition-case err
+ (when (and (stringp filename)
+ (not (editorconfig--disabled-for-filename filename)))
+ (setq props (editorconfig-call-get-properties-function filename))
+ (setq coding-system
+ (editorconfig-merge-coding-systems (gethash 'end_of_line props)
+ (gethash 'charset props)))
+ (puthash (expand-file-name filename)
+ coding-system
+ editorconfig--filename-codingsystem-hash))
+ (error
+ (display-warning '(editorconfig editorconfig--advice-find-file-noselect)
+ (format "Failed to get properties, styles will not be applied: %S"
+ err)
+ :warning)))
+
+ (setq ret (apply f filename args))
+ (clrhash editorconfig--filename-codingsystem-hash)
+
+ (condition-case err
+ (with-current-buffer ret
+ (when (and props
+ ;; filename has already been checked
+ (not (editorconfig--disabled-for-majormode major-mode)))
+
+ ;; When file path indicates it is a remote file and it actually
+ ;; does not exists, `buffer-file-coding-system' will not be set.
+ ;; (Seems `insert-file-contents' will not be called)
+ ;; For this case, explicitly set this value so that saving will be done
+ ;; with expected coding system.
+ (when (and (file-remote-p filename)
+ (not (local-variable-p 'buffer-file-coding-system))
+ (not (file-exists-p filename))
+ coding-system
+ (not (eq coding-system
+ 'undecided)))
+ (set-buffer-file-coding-system coding-system))
+
+ ;; NOTE: hack-properties-functions cannot affect coding-system value,
+ ;; because it has to be set before initializing buffers.
+ (condition-case err
+ (run-hook-with-args 'editorconfig-hack-properties-functions props)
+ (error
+ (display-warning '(editorconfig editorconfig-hack-properties-functions)
+ (format "Error while running editorconfig-hack-properties-functions, abort running hook: %S"
+ err)
+ :warning)))
+ (setq editorconfig-properties-hash props)
+ ;; When initializing buffer, `editorconfig-major-mode-hook'
+ ;; will be called before setting `editorconfig-properties-hash', so
+ ;; execute this explicitly here.
+ (editorconfig-set-local-variables props)
+
+ (condition-case err
+ (run-hook-with-args 'editorconfig-after-apply-functions props)
+ (error
+ (display-warning '(editorconfig editorconfig--advice-find-file-noselect)
+ (format "Error while running `editorconfig-after-apply-functions': %S"
+ err))))))
+ (error
+ (display-warning '(editorconfig editorconfig--advice-find-file-noselect)
+ (format "Error while setting variables from EditorConfig: %S" err))))
+ ret))
+
+
+;;;###autoload
+(define-minor-mode editorconfig-mode
+ "Toggle EditorConfig feature.
+
+To disable EditorConfig in some buffers, modify
+`editorconfig-exclude-modes' or `editorconfig-exclude-regexps'."
+ :global t
+ :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
+ ;; explicitly through their hooks.
+ 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)
+ (dolist (hook modehooks)
+ (add-hook 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)
+ (dolist (hook modehooks)
+ (remove-hook hook 'editorconfig-major-mode-hook)))))
+
+
+;; (defconst editorconfig--version
+;; (eval-when-compile
+;; (require 'lisp-mnt)
+;; (declare-function lm-version "lisp-mnt" nil)
+;; (lm-version))
+;; "EditorConfig version.")
+
+(declare-function find-library-name "find-func" (library))
+(declare-function lm-version "lisp-mnt" nil)
+
+;;;###autoload
+(defun editorconfig-version (&optional show-version)
+ "Get EditorConfig version as string.
+
+If called interactively or if SHOW-VERSION is non-nil, show the
+version in the echo area and the messages buffer."
+ (interactive (list t))
+ (let* ((version (with-temp-buffer
+ (require 'find-func)
+ (insert-file-contents (find-library-name "editorconfig"))
+ (require 'lisp-mnt)
+ (lm-version)))
+ (pkg (and (eval-and-compile (require 'package nil t))
+ (cadr (assq 'editorconfig
+ package-alist))))
+ (pkg-version (and pkg
+ (package-version-join (package-desc-version pkg))))
+ (version-full (if (and pkg-version
+ (not (string= version pkg-version)))
+ (concat version "-" pkg-version)
+ version)))
+ (when show-version
+ (message "EditorConfig Emacs v%s" version-full))
+ version-full))
+
+(provide 'editorconfig)
+;;; editorconfig.el ends here
+
+;; Local Variables:
+;; sentence-end-double-space: t
+;; End: