43 changes: 34 additions & 9 deletions .github/workflows/build.yaml
@@ -1,4 +1,3 @@
---
name: build

on:
Expand All @@ -12,30 +11,56 @@ on:
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
emacs_version:
- "24.5"
- "25.3"
- "26.3"
- "27.2"
- "28.2"
- "29.1"
experimental: [false]
include:
- emacs_version: snapshot
- os: ubuntu-latest
emacs_version: snapshot
experimental: true
- os: macos-latest
emacs_version: snapshot
experimental: true
# 2023/8/2 Recently this test always fails
# so remove this until it works
# - os: windows-latest
# emacs_version: snapshot
# experimental: true
continue-on-error: ${{ matrix.experimental }}

steps:
- name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v3
with:
submodules: recursive

- name: Setup Emacs
uses: purcell/setup-emacs@master
uses: jcs090218/setup-emacs@master
with:
version: ${{ matrix.emacs_version }}
- name: Run tests
run: make check

- uses: emacs-eask/setup-eask@master
with:
version: 'snapshot'

- name: Run tests (Unix)
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: make check-unix

- name: Run tests (Windows)
if: matrix.os == 'windows-latest'
run: make check-dos
8 changes: 8 additions & 0 deletions .gitignore
Expand Up @@ -3,3 +3,11 @@
\#*
.\#*
*.autosave

# eask packages
.eask/
dist/

# packaging
*-autoloads.el
*-pkg.el
57 changes: 56 additions & 1 deletion CHANGELOG.md
Expand Up @@ -20,6 +20,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Security


## [0.10.1]

### Fixed

- Fix when-let (again) ([#305])
- Fix compile warning of python-mode offset ([#306])


## [0.10.0] - 2023-05-07

### Added

- Enable indentation for tree-sitter based typescript mode ([#282])
- Add support for json-ts-mode ([#283])
- Add support for some treesit modes ([#287])
- Add indent variable associations for numerous tree-sitter modes ([#290])
- Add js-ts-mode' spec to editorconfig-indentation-alist' ([#293])
- Add bash-ts-mode to editorconfig-indentation-alist ([#296])
- Add support for gdscript-mode ([#300])

### Changed

- Drop Emacs 24.x and 25.x ([#286])

### Fixed

- Fix write-file-functions default value ([#295])
- Check mode-class property for special modes ([#301])
- Load subr-x when compiling ([#302])


## [0.9.1] - 2022-11-07

### Fixed

- Check filename rather than buffer-file-name for consistency ([#280])


## [0.9.0] - 2022-10-23

### Changed
Expand Down Expand Up @@ -234,7 +272,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
*Undocumented*


[Unreleased]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.9.0...HEAD
[Unreleased]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.10.1...HEAD
[0.10.1]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.10.0...v0.10.1
[0.10.0]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.9.1...v0.10.0
[0.9.1]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.8.2...v0.9.0
[0.8.2]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.8.0...v0.8.1
Expand Down Expand Up @@ -262,6 +303,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[0.3]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.2...v0.3
[0.2]: https://github.com/editorconfig/editorconfig-emacs/compare/v0.1...v0.2
[0.1]: https://github.com/editorconfig/editorconfig-emacs/releases/tag/v0.1
[#306]: https://github.com/editorconfig/editorconfig-emacs/issues/306
[#305]: https://github.com/editorconfig/editorconfig-emacs/issues/305
[#302]: https://github.com/editorconfig/editorconfig-emacs/issues/302
[#301]: https://github.com/editorconfig/editorconfig-emacs/issues/301
[#300]: https://github.com/editorconfig/editorconfig-emacs/issues/300
[#296]: https://github.com/editorconfig/editorconfig-emacs/issues/296
[#295]: https://github.com/editorconfig/editorconfig-emacs/issues/295
[#293]: https://github.com/editorconfig/editorconfig-emacs/issues/293
[#290]: https://github.com/editorconfig/editorconfig-emacs/issues/290
[#287]: https://github.com/editorconfig/editorconfig-emacs/issues/287
[#286]: https://github.com/editorconfig/editorconfig-emacs/issues/286
[#283]: https://github.com/editorconfig/editorconfig-emacs/issues/283
[#282]: https://github.com/editorconfig/editorconfig-emacs/issues/282
[#280]: https://github.com/editorconfig/editorconfig-emacs/issues/280
[#263]: https://github.com/editorconfig/editorconfig-emacs/issues/263
[#260]: https://github.com/editorconfig/editorconfig-emacs/issues/260
[#258]: https://github.com/editorconfig/editorconfig-emacs/issues/258
Expand Down
20 changes: 20 additions & 0 deletions Eask
@@ -0,0 +1,20 @@
(package "editorconfig"
"0.10.1"
"EditorConfig Emacs Plugin")

(website-url "https://github.com/editorconfig/editorconfig-emacs#readme")
(keywords "convenience" "editorconfig")

(package-file "editorconfig.el")

(files "editorconfig-*.el")

(script "test" "echo \"Error: no test specified\" && exit 1")

(source "gnu")
(source "melpa")

(depends-on "emacs" "26.1")
(depends-on "nadvice")

(setq network-security-level 'low) ; see https://github.com/jcs090218/setup-emacs-windows/issues/156#issuecomment-932956432
18 changes: 12 additions & 6 deletions Makefile
Expand Up @@ -3,6 +3,7 @@
TEXI_CHAPTER := EditorConfig Emacs Plugin

EMACS = emacs
EASK = eask
PANDOC = pandoc
AWK = awk

Expand All @@ -16,21 +17,26 @@ MAIN_SRC = editorconfig.el
SRCS = $(wildcard $(PROJECT_ROOT_DIR)/*.el)
OBJS = $(SRCS:.el=.elc)

.PHONY: check \
.PHONY: check-unix check-dos \
compile clean \
test test-ert test-core \
sandbox doc

check: compile test
# CI entry
check-unix: package install compile test
check-dos: package install compile test-ert

package:
$(EASK) package

compile: $(OBJS)
install:
$(EASK) install

$(OBJS): %.elc: %.el
$(EMACS) $(BATCHFLAGS) -f batch-byte-compile $^
compile:
$(EASK) compile

clean:
-rm -f $(OBJS)
$(EASK) clean elc


doc: doc/editorconfig.texi
Expand Down