Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 25 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,53 @@
name: CI Build
on: [ push, pull_request ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CI: "true"
jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
emacs_version:
os: [ubuntu-latest, macos-latest, windows-latest]
emacs-version:
- 27.1
- 27.2
- 28.1
- 28.2
- snapshot
experimental: [false]
include:
- os: ubuntu-latest
emacs-version: snapshot
experimental: true
- os: macos-latest
emacs-version: snapshot
experimental: true
- os: windows-latest
emacs-version: snapshot
experimental: true
steps:
- name: Install Emacs
uses: purcell/setup-emacs@master
uses: jcs090218/setup-emacs@master
with:
version: ${{ matrix.emacs_version }}
- name: Install Cask
uses: conao3/setup-cask@master
version: ${{ matrix.emacs-version }}
- name: Install Eask
uses: emacs-eask/setup-eask@master
with:
version: 'snapshot'
- name: Install Aspell
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y aspell
- name: Checkout treemacs
uses: actions/checkout@v2
with:
repository: Alexander-Miller/treemacs
path: treemacs
- name: Cask Install
run: cask --path treemacs install
- name: Eask Install
run: eask install-deps --dev
- name: Checkdoc
run: make -C treemacs checkdoc
- name: Compile
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*.elc
/.cask/
/.eask/
/dist/
/performance-test/
23 changes: 0 additions & 23 deletions Cask

This file was deleted.

35 changes: 35 additions & 0 deletions Eask
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
(package "treemacs"
"3.1"
"A tree style file explorer package")

(website-url "https://github.com/Alexander-Miller/treemacs")

(package-file "src/elisp/treemacs.el")
(files "src/elisp/*.el" "src/extra/*.el")

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

(source 'gnu)
(source 'melpa)

(depends-on "dash")
(depends-on "s")
(depends-on "ace-window")
(depends-on "pfuture")
(depends-on "hydra")
(depends-on "ht")
(depends-on "cfrs")

(development
(depends-on "all-the-icons")
(depends-on "evil")
(depends-on "projectile")
(depends-on "magit")
(depends-on "persp-mode")
(depends-on "perspective")
(depends-on "with-editor")
(depends-on "buttercup")
(depends-on "el-mock")
(depends-on "ert-runner"))

(setq network-security-level 'low) ; see https://github.com/jcs090218/setup-emacs-windows/issues/156#issuecomment-932956432
65 changes: 12 additions & 53 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,92 +1,51 @@
.POSIX:

MAKEFLAGS += k
CASK = cask
EASK = eask
EMACS ?= emacs

NO_LOAD_WARNINGS = --eval "(defvar treemacs-no-load-time-warnings t)"
SRC_DIR = src/elisp
EXTRA_DIR = src/extra
EMACSFLAGS = -Q -batch -L $(SRC_DIR) $(NO_LOAD_WARNINGS)
COMPILE_COMMAND = --eval "(setq byte-compile-error-on-warn t)" -f batch-byte-compile
CHECKDOC_COMMAND = -l "test/checkdock.el"
LINT_DIR = /tmp/treemacs
LINT_FLAG = --eval "(setq byte-compile-dest-file-function (lambda (f) (concat \"$(LINT_DIR)\" (file-name-nondirectory f) \"c\")))"
TEST_COMMAND = buttercup -L $(SRC_DIR) -L $(EXTRA_DIR) -L . $(NO_LOAD_WARNINGS)

ELS = $(SRC_DIR)/treemacs.el
ELS += $(SRC_DIR)/treemacs-async.el
ELS += $(SRC_DIR)/treemacs-bookmarks.el
ELS += $(SRC_DIR)/treemacs-compatibility.el
ELS += $(SRC_DIR)/treemacs-core-utils.el
ELS += $(SRC_DIR)/treemacs-customization.el
ELS += $(SRC_DIR)/treemacs-diagnostics.el
ELS += $(SRC_DIR)/treemacs-dom.el
ELS += $(SRC_DIR)/treemacs-extensions.el
ELS += $(SRC_DIR)/treemacs-faces.el
ELS += $(SRC_DIR)/treemacs-filewatch-mode.el
ELS += $(SRC_DIR)/treemacs-follow-mode.el
ELS += $(SRC_DIR)/treemacs-fringe-indicator.el
ELS += $(SRC_DIR)/treemacs-header-line.el
ELS += $(SRC_DIR)/treemacs-hydras.el
ELS += $(SRC_DIR)/treemacs-icons.el
ELS += $(SRC_DIR)/treemacs-interface.el
ELS += $(SRC_DIR)/treemacs-logging.el
ELS += $(SRC_DIR)/treemacs-macros.el
ELS += $(SRC_DIR)/treemacs-mode.el
ELS += $(SRC_DIR)/treemacs-mouse-interface.el
ELS += $(SRC_DIR)/treemacs-persistence.el
ELS += $(SRC_DIR)/treemacs-rendering.el
ELS += $(SRC_DIR)/treemacs-scope.el
ELS += $(SRC_DIR)/treemacs-tag-follow-mode.el
ELS += $(SRC_DIR)/treemacs-tags.el
ELS += $(SRC_DIR)/treemacs-themes.el
ELS += $(SRC_DIR)/treemacs-visuals.el
ELS += $(SRC_DIR)/treemacs-workspaces.el
ELS += $(EXTRA_DIR)/treemacs-all-the-icons.el
ELS += $(EXTRA_DIR)/treemacs-evil.el
ELS += $(EXTRA_DIR)/treemacs-icons-dired.el
ELS += $(EXTRA_DIR)/treemacs-magit.el
ELS += $(EXTRA_DIR)/treemacs-persp.el
ELS += $(EXTRA_DIR)/treemacs-perspective.el
ELS += $(EXTRA_DIR)/treemacs-projectile.el
ELS += $(EXTRA_DIR)/treemacs-tab-bar.el
ELCS = $(ELS:.el=.elc)

.PHONY: test compile checkdoc clean lint prepare clean-start .prepare-lint

.ONESHELL:

%.elc: %.el
@printf "Compiling $<\n"
$(CASK) exec $(EMACS) $(EMACSFLAGS) $(COMPILE_COMMAND) $<
$(EASK) compile --strict $<

compile: prepare $(ELCS)
compile: prepare

.cask: Cask
.eask: Eask
@echo Updating external dependencies...
@$(CASK) install
@$(CASK) update
@touch .cask
@$(EASK) install
@$(EASK) update
@touch .eask

prepare: .cask
prepare: .eask

test: prepare
@$(CASK) exec $(TEST_COMMAND)
@$(EASK) exec $(TEST_COMMAND)

clean:
@rm -f $(SRC_DIR)/*.elc
@rm -f $(EXTRA_DIR)/*.elc
@$(EASK) clean all

lint: EMACSFLAGS += $(LINT_FLAG)
lint: .prepare-lint compile checkdoc
@rm -rf $(LINT_DIR)

checkdoc:
@$(CASK) exec $(EMACS) $(EMACSFLAGS) $(CHECKDOC_COMMAND)
@$(EASK) exec $(EMACS) $(EMACSFLAGS) $(CHECKDOC_COMMAND)

clean-start: prepare
@$(CASK) exec $(EMACS) -Q -L $(SRC_DIR) --eval "(require 'treemacs)" &
@$(EASK) test activate

.prepare-lint:
@rm -rf $(LINT_DIR)
Expand Down