From 299f43ef608053fac9636aeb7427d44882c065ed Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 14 Oct 2015 16:06:48 +0200 Subject: [PATCH 01/68] Cleanup Signed-off-by: Nicolas Lamirault --- addons/github.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/github.sh b/addons/github.sh index d1bf504..662b7f9 100755 --- a/addons/github.sh +++ b/addons/github.sh @@ -41,7 +41,6 @@ docker run --rm -e GITHUB_TOKEN scame/release \ --tag $VERSION \ --name $VERSION \ --description "" - # --pre-release \ echo -e "\033[32;01m[scame] Upload archive \033[0m" PKG="scame-$VERSION.tar.gz" From 4168bc3ede78b8669b0f6fdfd7fdbe74bb6ffe52 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 14 Oct 2015 16:18:18 +0200 Subject: [PATCH 02/68] bump version Signed-off-by: Nicolas Lamirault --- src/scame/core/01_scame_version.el | 2 +- test/scame-version-test.el | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scame/core/01_scame_version.el b/src/scame/core/01_scame_version.el index 0fc321e..8879924 100644 --- a/src/scame/core/01_scame_version.el +++ b/src/scame/core/01_scame_version.el @@ -21,7 +21,7 @@ ;;; Code: -(defvar scame-version-number "1.3.0" +(defvar scame-version-number "1.4.0" "Release version of Scame.") (provide '01_scame_version) diff --git a/test/scame-version-test.el b/test/scame-version-test.el index 0e0529a..1f208ec 100644 --- a/test/scame-version-test.el +++ b/test/scame-version-test.el @@ -23,7 +23,7 @@ (require 'pkg-info) -(setq current-version "1.3.0") +(setq current-version "1.4.0") (ert-deftest test-scame-version () From fbed6bb36f4a7c8ed34f6221b2615590bc8de44e Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Fri, 16 Oct 2015 15:10:15 +0200 Subject: [PATCH 03/68] FIX projectile completion backends Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 4daed2f..2ad236b 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -19,11 +19,6 @@ ;;; Code: - -;; From : http://batsov.com/projectile/ - -;;(require 'projectile) - ;; change-log-mode is hard-coded to use TABs for indentation. Get around that with: (add-hook 'change-log-mode-hook (function (lambda () (setq indent-tabs-mode nil)))) @@ -49,23 +44,16 @@ (projectile-global-mode t) (setq projectile-enable-caching t) (setq projectile-require-project-root nil) - (cond ((eql 'ido scame-completion-method) - (setq projectile-completion-system 'ido)) - ((eql 'helm scame-completion-method) - (setq projectile-completion-system 'helm)) - ((eql 'ivy scame-completion-method) - (setq projectile-completion-system 'ivy)) - (t (setq projectile-completion-system 'ido))) - ;;(setq projectile-switch-project-action 'projectile-dired) + ;;(setq projectile-switch-project-action 'projectile-dired) ;;(setq projectile-switch-project-action 'projectile-find-dir) (setq projectile-switch-project-action 'projectile-find-file) (add-to-list 'projectile-globally-ignored-files ".DS_Store")) :diminish projectile-mode) + (use-package helm-projectile - ;; :defer scame-defer-package - :init (helm-projectile-on) + ;; :init (helm-projectile-on) :config (setq projectile-completion-system 'helm) :bind (("C-c p h" . helm-projectile))) @@ -84,9 +72,15 @@ (ibuffer-do-sort-by-major-mode)))))) -;; (condition-case e -;; (require 'es-windows) -;; (error (message "%s" e))) +(cond ((eql 'ido scame-completion-method) + (setq projectile-completion-system 'ido)) + ((eql 'helm scame-completion-method) + (progn + (helm-projectile-on) + (setq projectile-completion-system 'helm))) + ((eql 'ivy scame-completion-method) + (setq projectile-completion-system 'ivy)) + (t (setq projectile-completion-system 'ido))) ;;(use-package project-explorer) From 8f87150821229c2b7286ec53744ec1805e5e8349 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 21 Oct 2015 07:30:19 +0200 Subject: [PATCH 04/68] Update project Signed-off-by: Nicolas Lamirault --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index a4afc02..750a645 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Emacs +*~ + +# Emacslisp .cask elpa .projectile From 2c6e3514650c80e65c845e768d451dbad013cef5 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 26 Oct 2015 09:26:12 +0100 Subject: [PATCH 05/68] Add beacon Signed-off-by: Nicolas Lamirault --- src/scame/packages/01_basic_ui.el | 13 +++++++++++++ src/scame/scame-pkg.el | 1 + 2 files changed, 14 insertions(+) diff --git a/src/scame/packages/01_basic_ui.el b/src/scame/packages/01_basic_ui.el index 0d4ac81..b7ef0fe 100644 --- a/src/scame/packages/01_basic_ui.el +++ b/src/scame/packages/01_basic_ui.el @@ -56,5 +56,18 @@ :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) :bind ("C-x o" . ace-window)) +(use-package beacon + :diminish beacon-mode + :config (progn + (beacon-mode 1) + (setq beacon-blink-delay 0.2 + beacon-blink-duration 0.2 + beacon-blink-when-point-moves 7 + beacon-blink-when-window-changes t + beacon-blink-when-window-scrolls t + beacon-color "brown" + beacon-push-mark 5 + beacon-size 25))) + (provide '01_basic_ui) ;;; 01_basic_ui.el ends here diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index e22cafb..9d6a0da 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -174,6 +174,7 @@ ace-window smart-mode-line smart-mode-line-powerline-theme spaceline + beacon ;; Keys hydra which-key From 3b7262d575a41f5c3589398bc4825d80be273ef4 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Fri, 30 Oct 2015 15:01:29 +0100 Subject: [PATCH 06/68] Add go-rename and go-dlv Signed-off-by: Nicolas Lamirault --- src/scame/packages/34_go-lang.el | 12 ++++++++++++ src/scame/scame-pkg.el | 12 +++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/scame/packages/34_go-lang.el b/src/scame/packages/34_go-lang.el index 50a0f9f..62e4759 100644 --- a/src/scame/packages/34_go-lang.el +++ b/src/scame/packages/34_go-lang.el @@ -67,6 +67,18 @@ (lambda () (local-set-key (kbd "C-x g l") 'golint))))) + (use-package go-rename + :config (progn + (add-hook 'go-mode-hook + (lambda () + (local-set-key (kbd "C-x g R") 'go-rename))))) + + (use-package go-dlv + :config (progn + (add-hook 'go-mode-hook + (lambda () + (local-set-key (kbd "C-x g d") 'dlv-current-func))))) + (use-package go-direx ;; :defer scame-defer-package :config (progn diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 9d6a0da..a1c185c 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -56,6 +56,10 @@ ;; Scame packages +(defvar gnu-packages + '( + seq + )) (defvar stable-packages '()) @@ -213,8 +217,8 @@ ;; Packages environments + (when scame-golang - (add-to-list 'unstable-packages 'go-mode t) (add-to-list 'unstable-packages 'go-mode t) (add-to-list 'unstable-packages 'company-go t) (add-to-list 'unstable-packages 'go-eldoc t) @@ -224,6 +228,8 @@ ;; https://github.com/dougm/go-projectile/issues/2 (add-to-list 'unstable-packages 'go-projectile t) ;; https://github.com/golang/lint/issues/111 + (add-to-list 'unstable-packages 'go-rename t) + (add-to-list 'unstable-packages 'go-dlv t) (add-to-list 'unstable-packages 'golint t)) (when scame-commonlisp @@ -380,6 +386,9 @@ (package-install pkg)) (redisplay))) +(dolist (pkg gnu-packages) + (add-to-list 'package-pinned-packages + (cons pkg "gnu"))) (dolist (pkg stable-packages) ;; (message "Package: %s" pkg) @@ -400,6 +409,7 @@ (scame--msg-buffer "--> Packages installation ...\n" 'font-lock-string-face) (redisplay) +(scame--install-packages gnu-packages) (scame--install-packages stable-packages) (scame--install-packages unstable-packages) From 368117ad95969671d1c19ea6429f2c225671286c Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:44:06 +0100 Subject: [PATCH 07/68] FIX: Remove Beacon. Unit tests fails due to seq. Signed-off-by: Nicolas Lamirault --- src/scame/packages/01_basic_ui.el | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/scame/packages/01_basic_ui.el b/src/scame/packages/01_basic_ui.el index b7ef0fe..0e3cc61 100644 --- a/src/scame/packages/01_basic_ui.el +++ b/src/scame/packages/01_basic_ui.el @@ -56,18 +56,18 @@ :config (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)) :bind ("C-x o" . ace-window)) -(use-package beacon - :diminish beacon-mode - :config (progn - (beacon-mode 1) - (setq beacon-blink-delay 0.2 - beacon-blink-duration 0.2 - beacon-blink-when-point-moves 7 - beacon-blink-when-window-changes t - beacon-blink-when-window-scrolls t - beacon-color "brown" - beacon-push-mark 5 - beacon-size 25))) +;; (use-package beacon +;; :diminish beacon-mode +;; :config (progn +;; (beacon-mode 1) +;; (setq beacon-blink-delay 0.2 +;; beacon-blink-duration 0.2 +;; beacon-blink-when-point-moves 7 +;; beacon-blink-when-window-changes t +;; beacon-blink-when-window-scrolls t +;; beacon-color "brown" +;; beacon-push-mark 5 +;; beacon-size 25))) (provide '01_basic_ui) ;;; 01_basic_ui.el ends here From 1f2497f029e8f4b0b2d475eae11a20321b56651c Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:45:12 +0100 Subject: [PATCH 08/68] Refactoring helm and ivy setup FIX default configuration for Helm and Ivy. FIX projectile configuration using theses backends. Add unit tests Signed-off-by: Nicolas Lamirault --- src/scame/packages/04_search.el | 169 +++++++++++++++++--------------- src/scame/packages/30_dev.el | 48 +++++---- test/scame-helm-test.el | 65 ++++++------ test/scame-ivy-test.el | 57 +++++++++++ test/test-helper.el | 26 ----- 5 files changed, 217 insertions(+), 148 deletions(-) create mode 100644 test/scame-ivy-test.el diff --git a/src/scame/packages/04_search.el b/src/scame/packages/04_search.el index 941b13e..c59bbce 100644 --- a/src/scame/packages/04_search.el +++ b/src/scame/packages/04_search.el @@ -20,83 +20,98 @@ ;;; Code: -(use-package ido - ;;:init (ido-mode 1) - :config (progn - (setq ido-case-fold t) - (setq ido-everywhere t) - (setq ido-enable-prefix nil) - (setq ido-enable-flex-matching t) - (setq ido-create-new-buffer 'always) - (setq ido-max-prospects 10) - (add-to-list 'ido-ignore-files "\\.DS_Store"))) - - -(global-unset-key (kbd "C-x h")) -(define-prefix-command 'scame-helm-map) -(global-set-key (kbd "C-x h") 'scame-helm-map) - - -(use-package helm - ;; :init (progn - ;; (helm-mode 1)) - ;; :config (progn - ;; (setq helm-ff-tramp-not-fancy nil) - ;; (setq helm-ff-skip-boring-files t) - ;; (add-to-list 'helm-boring-buffer-regexp-list "\\*tramp") - ;; (add-to-list 'helm-boring-buffer-regexp-list "\\*epc") - ;; (add-to-list 'helm-boring-buffer-regexp-list "\\.elc$") - ;; (add-to-list 'helm-boring-buffer-regexp-list "\\.pyc$")) - :bind (("C-x h F" . helm-find-files) - ("C-x h f" . helm-for-files) - ("C-x h r" . helm-recentf) - ("C-x h x" . helm-M-x) - ("C-x h y" . helm-show-kill-ring) - ("C-x h l" . helm-bookmarks) - ("C-x h a" . helm-apropos) - ("C-x h i" . helm-info-emacs) - ("C-x h b" . helm-buffers-list))) - -(use-package helm-occur - :bind (("C-x h o" . helm-occur))) - -(use-package helm-imenu - :bind (("C-x h i" . helm-imenu))) - -;; (use-package helm-proc) - -(use-package helm-descbinds - :bind ("C-x h h" . helm-descbinds)) - -(use-package helm-swoop - :config (progn - (setq helm-multi-swoop-edit-save t) - (setq helm-swoop-split-direction 'split-window-vertically)) - :bind (("C-x h w" . helm-swoop) - ("C-x h W" . helm-multi-swoop))) - -;; (use-package helm-dash -;; :config (progn -;; (setq helm-dash-min-length 1) -;; (setq helm-dash-browser-func 'eww))) - -(use-package ivy - :diminish ivy-mode) - -(use-package swiper - :bind (("C-s" . swiper) - ("C-r" . swiper))) -(autoload 'ivy-read "ivy") - -;; (use-package swiper-helm) - -(cond ((eql 'ido scame-completion-method) - (ido-mode 1)) - ((eql 'helm scame-completion-method) - (helm-mode 1)) - ((eql 'ivy scame-completion-method) - (ivy-mode t)) - (t (ido-mode 1))) + +(global-unset-key (kbd "C-x c")) +(define-prefix-command 'scame-completion-map) +(global-set-key (kbd "C-x c") 'scame-completion-map) + + +(defun scame--setup-ido () + "Setup Scame with IDO backend." + (use-package ido + ;;:init (ido-mode 1) + :config (progn + (setq ido-case-fold t) + (setq ido-everywhere t) + (setq ido-enable-prefix nil) + (setq ido-enable-flex-matching t) + (setq ido-create-new-buffer 'always) + (setq ido-max-prospects 10) + (add-to-list 'ido-ignore-files "\\.DS_Store")))) + +(defun scame--setup-helm () + "Setup Scame with HELM backend." + + (use-package helm + :bind (("C-x c F" . helm-find-files) + ("C-x c f" . helm-for-files) + ("C-x c r" . helm-recentf) + ("C-x c x" . helm-M-x) + ("C-x c y" . helm-show-kill-ring) + ("C-x c l" . helm-bookmarks) + ("C-x c a" . helm-apropos) + ("C-x c i" . helm-info-emacs) + ("C-x c b" . helm-buffers-list))) + + (use-package helm-occur + :bind (("C-x c o" . helm-occur))) + + (use-package helm-imenu + :bind (("C-x c i" . helm-imenu))) + + (use-package helm-descbinds + :bind ("C-x c h" . helm-descbinds)) + + (use-package helm-swoop + :config (progn + (setq helm-multi-swoop-edit-save t) + (setq helm-swoop-split-direction 'split-window-vertically)) + :bind (("C-x c w" . helm-swoop) + ("C-x c W" . helm-multi-swoop))) + ) + + +(defun scame--setup-ivy () + "Setup Scame using IVY backend." + (use-package counsel + :bind (("C-x c F" . counsel-find-file) + ("C-x c v" . counsel-describe-variable) + ("C-x c f" . counsel-describe-function) + ("C-x c y" . counsel-info-lookup-symbol) + ("C-x c i" . counsel-imenu))) + + (use-package ivy + :diminish ivy-mode + :bind (("C-x c r" . ivy-recentf) + ("C-x c b" . ivy-switch-buffer))) + + (use-package swiper + :bind (("C-s" . swiper) + ("C-r" . swiper))) + (autoload 'ivy-read "ivy")) + + +(defun scame--setup-search-framework (completion-method) + "Setup search frameworks using `COMPLETION-METHOD'." + (cond ((eql 'ido completion-method) + (progn + (scame--setup-ido) + (ido-mode 1))) + ((eql 'helm completion-method) + (progn + (scame--setup-helm) + (helm-mode 1))) + ((eql 'ivy completion-method) + (progn + (scame--setup-ivy) + (ivy-mode t))) + (t (progn + (scame--setup-ido) + (ido-mode 1))))) + + +(scame--setup-search-framework scame-completion-method) + diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 2ad236b..57e7bba 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -37,6 +37,7 @@ ;; (fci-mode 1))) ;; (global-fci-mode 1))) + (use-package projectile ;; :defer scame-defer-package ;;:init (projectile-global-mode 1) @@ -51,16 +52,6 @@ ".DS_Store")) :diminish projectile-mode) - -(use-package helm-projectile - ;; :init (helm-projectile-on) - :config (setq projectile-completion-system 'helm) - :bind (("C-c p h" . helm-projectile))) - -(use-package persp-projectile - ;; :defer scame-defer-package - :bind (("C-c p s w" . projectile-persp-switch-project))) - (use-package ibuffer-projectile ;; :defer scame-defer-package :config (progn @@ -72,17 +63,41 @@ (ibuffer-do-sort-by-major-mode)))))) +(defun ivy-switch-project () + (interactive) + (ivy-read + "Switch to project: " + (if (projectile-project-p) + (cons (abbreviate-file-name (projectile-project-root)) + (projectile-relevant-known-projects)) + projectile-known-projects) + :action #'projectile-switch-project-by-name)) + +(message "Scame completion : %s" scame-completion-method) + (cond ((eql 'ido scame-completion-method) (setq projectile-completion-system 'ido)) + ((eql 'helm scame-completion-method) (progn + (message "Projectile with Helm") + (use-package helm-projectile + :config (setq projectile-completion-system 'helm) + :bind (("C-c p SPC" . helm-projectile))) + (use-package persp-projectile + :bind (("C-c p s w" . projectile-persp-switch-project))) (helm-projectile-on) (setq projectile-completion-system 'helm))) + ((eql 'ivy scame-completion-method) - (setq projectile-completion-system 'ivy)) + (progn + (message "Projectile with Ivy") + (setq projectile-completion-system 'ivy) + (global-set-key (kbd "C-c p SPC") 'ivy-switch-project))) + + (t (setq projectile-completion-system 'ido))) -;;(use-package project-explorer) (setq-default indent-tabs-mode nil) @@ -103,12 +118,7 @@ http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emac (add-hook 'compilation-filter-hook 'scame-colorize-compilation-buffer) -;; (use-package know-your-http-well) - -;; (use-package find-file-in-project) - (use-package neotree - ;; :defer scame-defer-package :init (progn (defun neotree-project-dir () "Open dirtree using the git root." @@ -123,6 +133,9 @@ http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emac :bind (("C-x t t" . neotree-toggle) ("C-x t p" . neotree-project-dir))) + +;; Search + (use-package ag ;; :defer scame-defer-package :commands (ag ag-project) @@ -133,5 +146,6 @@ http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emac :bind (("C-c p s p" . projectile-pt))) + (provide '30_dev) ;;; 30_dev.el ends here diff --git a/test/scame-helm-test.el b/test/scame-helm-test.el index 2e99963..b3b723c 100644 --- a/test/scame-helm-test.el +++ b/test/scame-helm-test.el @@ -22,43 +22,52 @@ ;; FIXME (ert-deftest test-scame-helm () :tags '(helm) - (with-test-sandbox - (require 'helm) - (should (eql 'scame-helm-map - (key-binding (kbd "C-x h")))) - (should (eql 'helm-find-files - (key-binding (kbd "C-x h F")))) - (should (eql 'helm-for-files - (key-binding (kbd "C-x h f")))) - (should (eql 'helm-M-x - (key-binding (kbd "C-x h x")))) - (should (eql 'helm-show-kill-ring - (key-binding (kbd "C-x h y")))) - (should (eql 'helm-buffers-list - (key-binding (kbd "C-x h b")))))) + (let ((scame-completion-method 'helm)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'helm) + (should (eql 'scame-completion-map + (key-binding (kbd "C-x c")))) + (should (eql 'helm-find-files + (key-binding (kbd "C-x c F")))) + (should (eql 'helm-for-files + (key-binding (kbd "C-x c f")))) + (should (eql 'helm-M-x + (key-binding (kbd "C-x c x")))) + (should (eql 'helm-show-kill-ring + (key-binding (kbd "C-x c y")))) + (should (eql 'helm-buffers-list + (key-binding (kbd "C-x c b"))))))) (ert-deftest test-scame-occur () :tags '(helm) - (with-test-sandbox - (require 'helm) - (should (eql 'helm-occur (key-binding (kbd "C-x h o")))))) + (let ((scame-completion-method 'helm)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'helm) + (should (eql 'helm-occur (key-binding (kbd "C-x c o"))))))) (ert-deftest test-scame-swoop () :tags '(helm) - (with-test-sandbox - (require 'helm) - (require 'helm-swoop) - (should (featurep 'helm-swoop)) - (should (eql 'helm-swoop (key-binding (kbd "C-x h w")))) - (should (eql 'helm-multi-swoop (key-binding (kbd "C-x h W")))))) + (let ((scame-completion-method 'helm)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'helm) + (require 'helm-swoop) + (should (featurep 'helm-swoop)) + (should (eql 'helm-swoop (key-binding (kbd "C-x c w")))) + (should (eql 'helm-multi-swoop (key-binding (kbd "C-x c W"))))))) (ert-deftest test-scame-helm-imenu () :tags '(helm) - (with-test-sandbox - (require 'helm-imenu) - (should (featurep 'helm-imenu)) - (should (eql 'helm-imenu - (key-binding (kbd "C-x h i")))))) + (let ((scame-completion-method 'helm)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'helm) + (require 'helm-imenu) + (should (featurep 'helm-imenu)) + (should (eql 'helm-imenu + (key-binding (kbd "C-x c i"))))))) (provide 'scame-helm-test) ;;; scame-helm-test.el ends here diff --git a/test/scame-ivy-test.el b/test/scame-ivy-test.el new file mode 100644 index 0000000..46bd3f4 --- /dev/null +++ b/test/scame-ivy-test.el @@ -0,0 +1,57 @@ +;;; scame-ivy-test.el --- Unit tests for Scame Ivy configuration. + +;; Copyright (C) 2015 Nicolas Lamirault + +;; This program 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 . + +;;; Commentary: + +;;; Code: + + +(ert-deftest test-scame-ivy () + :tags '(ivy) + (let ((scame-completion-method 'ivy)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'ivy) + (should (eql 'scame-completion-map + (key-binding (kbd "C-x c")))) + (should (eql 'counsel-find-file + (key-binding (kbd "C-x c F")))) + (should (eql 'counsel-describe-function + (key-binding (kbd "C-x c f")))) + (should (eql 'counsel-describe-variable + (key-binding (kbd "C-x c v")))) + (should (eql 'counsel-info-lookup-symbol + (key-binding (kbd "C-x c y")))) + (should (eql 'ivy-recentf + (key-binding (kbd "C-x c r")))) + (should (eql 'ivy-switch-buffer + (key-binding (kbd "C-x c b"))))))) + + +(ert-deftest test-scame-ivy-imenu () + :tags '(ivy) + (let ((scame-completion-method 'ivy)) + (scame--setup-search-framework scame-completion-method) + (with-test-sandbox + (require 'ivy) + (should (eql 'counsel-imenu + (key-binding (kbd "C-x c i"))))))) + + + +(provide 'scame-ivy-test) +;;; scame-ivy-test.el ends here diff --git a/test/test-helper.el b/test/test-helper.el index ae65d6a..d0796e9 100644 --- a/test/test-helper.el +++ b/test/test-helper.el @@ -136,32 +136,6 @@ (scame--with-output (require 'scame path)))) - -;; (defmacro with-test-sandbox (&rest body) -;; "Evaluate BODY in an empty sandbox directory." -;; `(unwind-protect -;; (condition-case nil ;ex -;; (let ((default-directory scame-test/sandbox-path) -;; (scame-user-directory (concat scame-test/sandbox-path "/scame")) -;; (user-emacs-directory scame-test/sandbox-path) -;; ;;(package-user-dir (f-join scame-test/sandbox-path "elpa"))) -;; ) -;; ;; (unless (f-dir? scame-test/sandbox-path) -;; ;; (f-mkdir scame-test/sandbox-path)) -;; (cleanup-load-path) -;; (install-scame) -;; (setup-scame scame-test/sandbox-path) -;; ;; (message "Load path : %s" load-path) -;; (setup-scame-test) -;; (load-library "scame/scame.el") -;; ;;(should (featurep 'scame-global-mode)) -;; (message (ansi-yellow "[Scame] Execute body")) -;; ,@body) -;; ;; (f-delete scame-test/sandbox-path :force))) -;; ))) -;; ;; (error -;; ;; (message (ansi-red "[Scame] Error during unit tests : %s" ex)))))) - (defmacro with-test-sandbox (&rest body) "Evaluate BODY in an empty sandbox directory." `(unwind-protect From 2ab0a27a8d0b537da4795599b408977eaa69a109 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:45:58 +0100 Subject: [PATCH 09/68] FIX Haskell configuration Signed-off-by: Nicolas Lamirault --- src/scame/packages/40_haskell.el | 25 +++++++++++-------------- test/scame-haskell-test.el | 11 +++++++++-- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/scame/packages/40_haskell.el b/src/scame/packages/40_haskell.el index 042b112..a9ae38a 100644 --- a/src/scame/packages/40_haskell.el +++ b/src/scame/packages/40_haskell.el @@ -19,25 +19,22 @@ ;;; Code: +;; (global-unset-key (kbd "C-x h")) +;; (define-prefix-command 'scame-hashell-map) +;; (global-set-key (kbd "C-x h") 'scame-haskell-map) + (when scame-haskell (use-package haskell-mode - ;; :defer scame-defer-package :init (progn (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation) - (add-hook 'haskell-mode-hook 'turn-on-haskell-simple-indent) - (add-hook 'haskell-mode-hook 'turn-on-haskell-indent) - (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode) - ;;(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)) - ) - ;; :bind (;;("C-," . haskell-move-nested-left) - ;; ;;("C-." . haskell-move-nested-right) - ;; ;; ("M-o" . editutil-edit-next-line-same-column) - ;; ;;("TAB" . haskell-simple-indent) - ;; ;;("" . haskell-simple-indent-backtab) - ;; ;;("C-" . haskell-simple-indent-newline-indent))) - ;; )) - ) + (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)) + :config (add-hook 'haskell-mode-hook + (lambda () + (local-set-key (kbd "C-x h t") 'haskell-process-do-type) + (local-set-key (kbd "C-x h i") 'haskell-process-do-info) + (local-set-key (kbd "C-x h c") 'haskell-process-cabal) + (local-set-key (kbd "C-x h b") 'haskell-process-cabal-build)))) ) diff --git a/test/scame-haskell-test.el b/test/scame-haskell-test.el index 85540e6..ed6828d 100644 --- a/test/scame-haskell-test.el +++ b/test/scame-haskell-test.el @@ -23,13 +23,20 @@ "var/hello.hs" "File name for testing Haskell setup.") -;; FIX: Why failed (ert-deftest test-scame-haskell () :tags '(haskell) (with-test-sandbox (with-current-file testsuite-haskell-filename - (should (featurep 'haskell-mode))))) + (should (featurep 'haskell-mode)) + (should (eql 'haskell-process-do-type + (key-binding (kbd "C-x h t")))) + (should (eql 'haskell-process-do-info + (key-binding (kbd "C-x h i")))) + (should (eql 'haskell-process-cabal + (key-binding (kbd "C-x h c")))) + (should (eql 'haskell-process-cabal-build + (key-binding (kbd "C-x h b"))))))) (provide 'scame-haskell-test) From 8e67ef00a1ed77d3c9756239561a2e2bac36f508 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:46:20 +0100 Subject: [PATCH 10/68] FIX Beacon Signed-off-by: Nicolas Lamirault --- src/scame/scame-pkg.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index a1c185c..11d5a47 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -178,7 +178,7 @@ ace-window smart-mode-line smart-mode-line-powerline-theme spaceline - beacon + ;;beacon ;; Keys hydra which-key From 342e24e37e65411b7d54691c20c84dd7be5d6975 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:49:23 +0100 Subject: [PATCH 11/68] Update Rust configuration Signed-off-by: Nicolas Lamirault --- src/scame/packages/44_rust.el | 11 +++++++++-- test/scame-rust-test.el | 8 +++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/scame/packages/44_rust.el b/src/scame/packages/44_rust.el index 10836e5..56cd9cd 100644 --- a/src/scame/packages/44_rust.el +++ b/src/scame/packages/44_rust.el @@ -27,8 +27,15 @@ :init (add-hook 'rust-mode-hook 'flycheck-mode) :config (setq tab-width 4)) - ;; (use-package cargo - ;; :config (add-hook 'rust-mode-hook 'cargo-minor-mode)) + (use-package cargo + :config (progn + (add-hook 'rust-mode-hook 'cargo-minor-mode) + (add-hook 'rust-mode-hook + (lambda () + (local-set-key (kbd "C-x r t") 'cargo-test-current-test) + (local-set-key (kbd "C-x r f") 'cargo-test-current-file) + (local-set-key (kbd "C-x r p") 'cargo-test-current-project) + )))) (use-package racer :init (progn diff --git a/test/scame-rust-test.el b/test/scame-rust-test.el index a654b76..361a64e 100644 --- a/test/scame-rust-test.el +++ b/test/scame-rust-test.el @@ -25,7 +25,13 @@ (with-test-sandbox (with-current-file "var/hello.rs" - (should (featurep 'rust-mode))))) + (should (featurep 'rust-mode)) + (should (eql 'cargo-test-current-test + (key-binding (kbd "C-x r t")))) + (should (eql 'cargo-test-current-file + (key-binding (kbd "C-x r f")))) + (should (eql 'cargo-test-current-project + (key-binding (kbd "C-x r p"))))))) (provide 'scame-rust-test) From 971e620ed488d843c7125c9a2f2101541d009be0 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:58:54 +0100 Subject: [PATCH 12/68] Add Hydra for golang and python Signed-off-by: Nicolas Lamirault --- src/scame/packages/31_python.el | 17 +++++++++++++++++ src/scame/packages/34_go-lang.el | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/scame/packages/31_python.el b/src/scame/packages/31_python.el index 6d17919..f4f3361 100644 --- a/src/scame/packages/31_python.el +++ b/src/scame/packages/31_python.el @@ -105,6 +105,23 @@ :config (add-hook 'python-mode-hook 'py-yapf-enable-on-save)) + (define-key python-mode-map (kbd "C-x y h") + (defhydra hydra-python (:color blue) + " + ^Tox^ ^Misc^ + ╭───────────────────────────────── + _t_: test _d_: pydoc + _f_: file + _p_: project + ---------------------------------- + " + ("q" nil "quit") + ("t" tox-current-test "test") + ("f" tox-current-file "file") + ("p" tox-current-project "project") + ("d" helm-pydoc "pydoc") + )) + ) diff --git a/src/scame/packages/34_go-lang.el b/src/scame/packages/34_go-lang.el index 62e4759..98d0770 100644 --- a/src/scame/packages/34_go-lang.el +++ b/src/scame/packages/34_go-lang.el @@ -98,6 +98,25 @@ (set (make-local-variable 'company-backends) '(company-go)) (company-mode)))) + (define-key go-mode-map (kbd "C-x g h") + (defhydra hydra-go (:color blue) + " + ^Test^ ^Tools^ + ╭───────────────────────────────── + _t_: test _d_: godoc + _f_: file _e_: errcheck + _p_: project _l_: golint + ---------------------------------- + " + ("q" nil "quit") + ("t" go-test-current-test "test") + ("f" go-test-current-file "file") + ("p" go-test-current-project "project") + ("d" godoc "godoc") + ("e" go-errcheck "errcheck") + ("l" golint "golint") + )) + ) (provide '34_go-lang) From a90daabea7da1d752eb01c642cec3e6e810e32df Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:59:15 +0100 Subject: [PATCH 13/68] Update documentation Signed-off-by: Nicolas Lamirault --- README.md | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 313d0db..e257772 100644 --- a/README.md +++ b/README.md @@ -139,17 +139,32 @@ Keybinding | Description C-c | Select the window to the up of the current one C-c | Select the window to the down of the current one +### Completion -### Helm +Set `scame-completion-method`. + +#### Helm Keybinding | Description ---------------------|------------------------------------------------------------ -C-x h F | helm-find-files -C-x h f | helm-for-files -C-x h b | helm-buffers-list -C-x h x | helm-M-x -C-x h y | helm-show-kill-ring -C-x h i | helm-imenu +C-x c F | helm-find-files +C-x c f | helm-for-files +C-x c b | helm-buffers-list +C-x c x | helm-M-x +C-x c y | helm-show-kill-ring +C-x c i | helm-imenu +C-x c r | helm-recentf + +#### Ivy + +Keybinding | Description +---------------------|------------------------------------------------------------ +C-x c F | counsel-find-file +C-x c f | counsel-describe-function +C-x c b | ivy-switch-buffer +C-x c y | counsel-info-lookup-symbol +C-x c i | counsel-imenu +C-x c r | ivy-recentf ### Swoop @@ -171,10 +186,10 @@ Keybinding | Description See [projectile][] for default keybindings -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c p h | helm-projectile -C-c p s w | projectile-persp-switch-project +Keybinding | Description +------------------------|------------------------------------------------------------ +C-c p SPC | ivy-switch-project or helm-projectile +C-c p s w | projectile-persp-switch-project ### Python-mode From 3d6315706aaa8d2f878476d9a7cd66001aa266d2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:59:36 +0100 Subject: [PATCH 14/68] Cleanup Signed-off-by: Nicolas Lamirault --- src/scame/core/06_scame_keys.el | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scame/core/06_scame_keys.el b/src/scame/core/06_scame_keys.el index 1b287c9..1e16298 100644 --- a/src/scame/core/06_scame_keys.el +++ b/src/scame/core/06_scame_keys.el @@ -190,5 +190,6 @@ (global-set-key (kbd "C-c s z") 'hydra-scame-zoom/body) + (provide '06_scame_keys) ;;; 06_scame_keys.el ends here From 8ba17bbaece76a8640362039707760de5f797c2b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 15:59:49 +0100 Subject: [PATCH 15/68] Update Gnus configuration for GMail Signed-off-by: Nicolas Lamirault --- src/scame/gnus/gnus-gmail.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scame/gnus/gnus-gmail.el b/src/scame/gnus/gnus-gmail.el index 2db644d..2ab2563 100644 --- a/src/scame/gnus/gnus-gmail.el +++ b/src/scame/gnus/gnus-gmail.el @@ -90,11 +90,19 @@ This moves them into the Spam folder." (interactive) (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Trash"))) +(define-key gnus-summary-mode-map + (kbd "B a") + (lambda () + (interactive) + (gnus-summary-move-article nil "nnimap+imap.gmail.com:[Gmail]/All Mail"))) + (define-key gnus-summary-mode-map (kbd "B s") (lambda () (interactive) (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Spam"))) + + (provide 'gnus-gmail) ;;; gnus-gmail.el ends here From 9d8d88301e0c903f16ff8c1a4b141fb89b2e5241 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:09:29 +0100 Subject: [PATCH 16/68] FIX CircleCI setup Signed-off-by: Nicolas Lamirault --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 42f39be..bd45322 100644 --- a/circle.yml +++ b/circle.yml @@ -4,6 +4,7 @@ machine: dependencies: pre: + - sudo rm /etc/apt/sources.list.d/google-chrome.list - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq From 5c3914d5a96665a7171d2e2881f4ba1a52d386ef Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:14:28 +0100 Subject: [PATCH 17/68] FIX CircleCI setup Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index bd45322..e927a29 100644 --- a/circle.yml +++ b/circle.yml @@ -8,7 +8,7 @@ dependencies: - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - - sudo apt-get install -qq emacs-snapshot emacs-snapshot-el + - sudo apt-get install -qq emacs-snapshot-el - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From 9a83c159a1b2af95004890a3e1b20a7c9c27208b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:27:13 +0100 Subject: [PATCH 18/68] FIX CircleCI setup Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index e927a29..da69968 100644 --- a/circle.yml +++ b/circle.yml @@ -5,7 +5,7 @@ machine: dependencies: pre: - sudo rm /etc/apt/sources.list.d/google-chrome.list - - sudo add-apt-repository -y ppa:cassou/emacs + #- sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - sudo apt-get install -qq emacs-snapshot-el From 10817f9a627ec8904348fee72dfe67c995190e43 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:27:36 +0100 Subject: [PATCH 19/68] FIX CircleCI setup Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index da69968..276a6b8 100644 --- a/circle.yml +++ b/circle.yml @@ -5,7 +5,7 @@ machine: dependencies: pre: - sudo rm /etc/apt/sources.list.d/google-chrome.list - #- sudo add-apt-repository -y ppa:cassou/emacs + #- sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - sudo apt-get install -qq emacs-snapshot-el From 93a03607831cbb9e22d2f2c2c8ee4c07d2e76c66 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:41:31 +0100 Subject: [PATCH 20/68] FIX projectile-perspective with helm and ivy Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 57e7bba..d236a47 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -84,8 +84,6 @@ (use-package helm-projectile :config (setq projectile-completion-system 'helm) :bind (("C-c p SPC" . helm-projectile))) - (use-package persp-projectile - :bind (("C-c p s w" . projectile-persp-switch-project))) (helm-projectile-on) (setq projectile-completion-system 'helm))) @@ -99,6 +97,10 @@ (t (setq projectile-completion-system 'ido))) +(use-package persp-projectile + :bind (("C-c p s w" . projectile-persp-switch-project))) + + (setq-default indent-tabs-mode nil) (add-hook 'write-file-hooks 'delete-trailing-whitespace) From 301f4a87c9b3feda670ec75d56534580380f6a70 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 21 Dec 2015 16:49:26 +0100 Subject: [PATCH 21/68] FIX projectile and perspective keybindings Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 2 +- test/scame-dev-commons-test.el | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index d236a47..610af6c 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -98,7 +98,7 @@ (use-package persp-projectile - :bind (("C-c p s w" . projectile-persp-switch-project))) + :bind (("C-c p p" . projectile-persp-switch-project))) (setq-default indent-tabs-mode nil) diff --git a/test/scame-dev-commons-test.el b/test/scame-dev-commons-test.el index e825e02..6573fd2 100644 --- a/test/scame-dev-commons-test.el +++ b/test/scame-dev-commons-test.el @@ -35,14 +35,6 @@ (change-log-mode) (should (eql nil indent-tabs-mode))))) -;; FIX: https://github.com/nlamirault/scame/issues/50 -;; (ert-deftest test-scame-projectile () -;; :tags '(dev) -;; (with-test-sandbox -;; (should (require 'projectile)) -;; (should (eql 'helm-projectile -;; (key-binding (kbd "C-c p h")))))) - (ert-deftest test-perspective () :tags '(dev) (with-test-sandbox @@ -62,5 +54,7 @@ (should (eql 'persp-prev (key-binding (kbd "C-x x p"))))))) + + (provide 'scame-dev-commons-test) ;;; scame-dev-commons-test.el ends here From c49b7b68be2ca6428b25743bd278c19b6b9b9046 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 22 Dec 2015 15:51:57 +0100 Subject: [PATCH 22/68] Update OCmaml configuration Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 5 +++-- src/scame/packages/35_ocaml.el | 28 +++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 610af6c..edff1ed 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -139,14 +139,15 @@ http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emac ;; Search (use-package ag - ;; :defer scame-defer-package :commands (ag ag-project) :config (setq ag-highlight-search t)) (use-package pt - ;; :defer scame-defer-package :bind (("C-c p s p" . projectile-pt))) +;; (use-package sift) +;; :bind (("C-c p s t" . projectile-pt))) + (provide '30_dev) diff --git a/src/scame/packages/35_ocaml.el b/src/scame/packages/35_ocaml.el index 49f1b11..3c1e171 100644 --- a/src/scame/packages/35_ocaml.el +++ b/src/scame/packages/35_ocaml.el @@ -21,12 +21,38 @@ (when scame-ocaml + (setq opam-share + (substring + (shell-command-to-string "opam config var share 2> /dev/null") 0 -1)) + (add-to-list 'load-path (concat opam-share "/emacs/site-lisp")) + (use-package tuareg - ;; :defer scame-defer-package :mode (("\\.ml\\w?" . tuareg-mode) ("\\.topml\\'" . taureg-mode) ("\\.fs[ix]?" . tuareg-mode))) + (use-package merlin + :config (progn + (add-hook 'tuareg-mode-hook 'merlin-mode t) + (add-hook 'caml-mode-hook 'merlin-mode t) + ;; (setq merlin-use-auto-complete-mode 'easy) + (with-eval-after-load 'company + (add-to-list 'company-backends 'merlin-company-backend)) + (add-hook 'merlin-mode-hook 'company-mode) + ;; Use opam switch to lookup ocamlmerlin binary + (setq merlin-command 'opam) + )) + + (use-package flycheck-ocaml + :init (with-eval-after-load 'merlin (flycheck-ocaml-setup))) + + (use-package utop + :if (executable-find "utop")) + + (use-package utop-minor-mode + :if (executable-find "utop") + :init (add-hook 'tuareg-mode-hook 'utop-minor-mode)) + ) (provide '35_ocaml) From 69e6977a226f50af319a9d418db2c5900ebd267b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 22 Dec 2015 15:52:13 +0100 Subject: [PATCH 23/68] Update OCaml dependencies Signed-off-by: Nicolas Lamirault --- src/scame/scame-pkg.el | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 11d5a47..4a5ce93 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -72,11 +72,18 @@ ;; Search helm + swiper + swiper-helm + + ack helm-ack - ag helm-ag - pt helm-pt - swoop helm-swoop - swiper swiper-helm + ag + helm-ag + pt + helm-pt + sift + swoop + helm-swoop paradox @@ -280,7 +287,10 @@ (add-to-list 'unstable-packages 'ghci-completion t)) (when scame-ocaml - (add-to-list 'unstable-packages 'tuareg t) t) + (add-to-list 'unstable-packages 'tuareg t) + (add-to-list 'unstable-packages 'merlin t) + (add-to-list 'unstable-packages 'utop t) + (add-to-list 'unstable-packages 'flycheck-ocaml t)) (when scame-php (add-to-list 'unstable-packages 'php-mode t) From f17372f9eb1b0d4d6c746a4c5734fa605f1a2cb2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 23 Dec 2015 13:47:38 +0100 Subject: [PATCH 24/68] Add Rustfmt package Signed-off-by: Nicolas Lamirault --- src/scame/packages/44_rust.el | 6 +++++- src/scame/scame-pkg.el | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scame/packages/44_rust.el b/src/scame/packages/44_rust.el index 56cd9cd..877e8f1 100644 --- a/src/scame/packages/44_rust.el +++ b/src/scame/packages/44_rust.el @@ -22,7 +22,6 @@ (when scame-rust (use-package rust-mode - ;; :defer scame-defer-package :mode (("\\.rs\\'" . rust-mode)) :init (add-hook 'rust-mode-hook 'flycheck-mode) :config (setq tab-width 4)) @@ -37,6 +36,9 @@ (local-set-key (kbd "C-x r p") 'cargo-test-current-project) )))) + (use-package :rustfmt + :config (add-hook 'rust-mode-hook #'rustfmt-enable-on-save)) + (use-package racer :init (progn (setq racer-rust-src-path (getenv "RUST_HOME")) @@ -54,6 +56,8 @@ (use-package company-racer :init (set (make-local-variable 'company-backends) '(company-racer))) + + ) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 4a5ce93..fdca3e0 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -327,6 +327,7 @@ ;; https://github.com/rust-lang/rust-mode/issues/87 (add-to-list 'unstable-packages 'rust-mode t) (add-to-list 'unstable-packages 'flycheck-rust t) + (add-to-list 'unstable-packages 'rustfmt t) (add-to-list 'unstable-packages 'racer t) (add-to-list 'unstable-packages 'company-racer t) (add-to-list 'unstable-packages 'cargo t)) From 333b29aaaea04c0418a10981340883a68696a0d9 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 24 Dec 2015 12:00:33 +0100 Subject: [PATCH 25/68] Add keyding for projectile persp Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index edff1ed..3158472 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -98,7 +98,7 @@ (use-package persp-projectile - :bind (("C-c p p" . projectile-persp-switch-project))) + :bind (("C-c p w" . projectile-persp-switch-project))) (setq-default indent-tabs-mode nil) From dde696ab28ce7ce3f251e2b131eb503f0e61b2fa Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 5 Jan 2016 17:25:35 +0100 Subject: [PATCH 26/68] FIX Change persp-projectile switch keyding In go development, already bind to go-rename Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 3158472..44636bf 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -1,6 +1,6 @@ ;;; 30_dev.el -- Commons configurations for development -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -98,7 +98,7 @@ (use-package persp-projectile - :bind (("C-c p w" . projectile-persp-switch-project))) + :bind (("C-c p n" . projectile-persp-switch-project))) (setq-default indent-tabs-mode nil) From 1a400f497feaec7346f284b528d950b42ead5ace Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 5 Jan 2016 17:30:07 +0100 Subject: [PATCH 27/68] FIX Ocaml setup when opam not installed Signed-off-by: Nicolas Lamirault --- src/scame/packages/35_ocaml.el | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/scame/packages/35_ocaml.el b/src/scame/packages/35_ocaml.el index 3c1e171..fd83480 100644 --- a/src/scame/packages/35_ocaml.el +++ b/src/scame/packages/35_ocaml.el @@ -1,6 +1,6 @@ ;;; 35_ocaml.el --- OCaml configuration -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -21,10 +21,12 @@ (when scame-ocaml - (setq opam-share - (substring - (shell-command-to-string "opam config var share 2> /dev/null") 0 -1)) - (add-to-list 'load-path (concat opam-share "/emacs/site-lisp")) + (let ((opam-configuration + (shell-command-to-string "opam config var share 2> /dev/null"))) + (when (> (length opam-configuration) 0) + (setq opam-share + (substring opam-configuration 0 -1)) + (add-to-list 'load-path (concat opam-share "/emacs/site-lisp")))) (use-package tuareg :mode (("\\.ml\\w?" . tuareg-mode) From 667a56fb78371ed40bb1e2a4b631896ace3ef3e5 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 6 Jan 2016 10:58:26 +0100 Subject: [PATCH 28/68] FIX CircleCI Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 276a6b8..a2a00b7 100644 --- a/circle.yml +++ b/circle.yml @@ -8,7 +8,7 @@ dependencies: #- sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - - sudo apt-get install -qq emacs-snapshot-el + - sudo apt-get install -qq emacs-snapshot emacs-snapshot-el - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From 953b67e5aca3175722f52272fd211284595c3f37 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 6 Jan 2016 11:28:12 +0100 Subject: [PATCH 29/68] FIX counsel lib Signed-off-by: Nicolas Lamirault --- src/scame/scame-pkg.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index fdca3e0..038083c 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -1,6 +1,6 @@ ;; scame-pkg.el --- Scame Packages installation -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -72,8 +72,8 @@ ;; Search helm + counsel swiper - swiper-helm ack helm-ack From df9b6a3d970fcdbd67aeafa4ec67bdbb4eafd11d Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:29:44 +0100 Subject: [PATCH 30/68] Update diminish modes Signed-off-by: Nicolas Lamirault --- src/scame/packages/06_keys.el | 5 +++-- src/scame/packages/31_python.el | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/scame/packages/06_keys.el b/src/scame/packages/06_keys.el index 5077e72..34f0d5c 100644 --- a/src/scame/packages/06_keys.el +++ b/src/scame/packages/06_keys.el @@ -1,6 +1,6 @@ ;;; 06_keys.el -- keys tools -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -32,7 +32,8 @@ ;; (setq which-key-popup-type 'minibuffer) (setq which-key-popup-type 'side-window) (setq which-key-side-window-max-width 0.33) - (setq which-key-side-window-max-height 0.25))) + (setq which-key-side-window-max-height 0.25)) + :diminish which-key-mode) (use-package hydra :config (progn diff --git a/src/scame/packages/31_python.el b/src/scame/packages/31_python.el index f4f3361..0cef5ff 100644 --- a/src/scame/packages/31_python.el +++ b/src/scame/packages/31_python.el @@ -1,6 +1,6 @@ ;;; 31_python.el --- Python configuration -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -46,7 +46,8 @@ ;; :defer scame-defer-package :config (progn (add-hook 'python-mode-hook 'anaconda-mode) - (add-hook 'python-mode-hook 'eldoc-mode))) + (add-hook 'python-mode-hook 'eldoc-mode)) + :diminish anaconda-mode) (use-package company-anaconda ;; :defer scame-defer-package @@ -85,7 +86,8 @@ :config (add-hook 'python-mode-hook (lambda () (require 'sphinx-doc) - (sphinx-doc-mode t)))) + (sphinx-doc-mode t))) + :diminish sphinx-doc-mode) (use-package helm-pydoc ;; :defer scame-defer-package From ec15f25969ceb17959c222101c941c831695e548 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:31:07 +0100 Subject: [PATCH 31/68] Add mode-icons Signed-off-by: Nicolas Lamirault --- src/scame/packages/01_basic_ui.el | 9 +++++++-- src/scame/scame-pkg.el | 11 ++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/scame/packages/01_basic_ui.el b/src/scame/packages/01_basic_ui.el index 0e3cc61..2d7ec5c 100644 --- a/src/scame/packages/01_basic_ui.el +++ b/src/scame/packages/01_basic_ui.el @@ -1,6 +1,6 @@ ;;; 01_basic_ui.el --- Emacs basic UI -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014-2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -38,7 +38,12 @@ (use-package tool-bar :config (tool-bar-mode -1)) - (setq x-select-enable-clipboard t)) + (setq x-select-enable-clipboard t) + + (use-package mode-icons + :config (mode-icons-mode)) + + ) ;; Window moves (global-set-key (kbd "C-c ") 'windmove-left) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index fdca3e0..17a0493 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -1,6 +1,6 @@ ;; scame-pkg.el --- Scame Packages installation -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -101,7 +101,10 @@ auto-complete ;; Projects - projectile helm-projectile persp-projectile ibuffer-projectile + projectile + helm-projectile + persp-projectile + ibuffer-projectile helm-project-persist ;; ;; https://github.com/dougm/go-projectile/issues/2 @@ -181,10 +184,12 @@ ;; libmpdee ;; UI - rich-minority powerline + rich-minority + powerline ace-window smart-mode-line smart-mode-line-powerline-theme spaceline + mode-icons ;;beacon ;; Keys From d20faf21596f8590cdd7ec89f2ee71d8b82653cc Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:31:43 +0100 Subject: [PATCH 32/68] Add Hydra for Gnus Signed-off-by: Nicolas Lamirault --- src/scame/gnus/gnus-gmail.el | 46 +++++++++++------------ src/scame/gnus/gnus-keys.el | 71 +++++++++++++++++++++++++++++------- src/scame/gnus/gnus-local.el | 4 +- src/scame/gnus/scame-gnus.el | 10 ++--- 4 files changed, 88 insertions(+), 43 deletions(-) diff --git a/src/scame/gnus/gnus-gmail.el b/src/scame/gnus/gnus-gmail.el index 2ab2563..b5e41c6 100644 --- a/src/scame/gnus/gnus-gmail.el +++ b/src/scame/gnus/gnus-gmail.el @@ -1,6 +1,6 @@ ;;; gnus-gmail.el --- Gmail configuration for Gnus -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -59,28 +59,28 @@ ;; Keybindings -(defun gmail-delete () - "Delete current mail." - (interactive) - (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Trash")) - -(defun gmail-archive () - "Archive the current or marked mails. -This moves them into the All Mail folder." - (interactive) - (gnus-summary-move-article nil "nnimap+imap.gmail.com:[Gmail]/All Mail")) - -(defun gmail-report-spam () - "Report the current or marked mails as spam. -This moves them into the Spam folder." - (interactive) - (gnus-summary-move-article nil "nnimap+imap.gmail.com:[Gmail]/Spam")) - -(defun gmail-summary-keys () - "Some keybindings for Gmail." - (local-set-key "y" 'gmail-archive) - (local-set-key "x" 'gmail-delete) - (local-set-key "$" 'gmail-report-spam)) +;; (defun gmail-delete () +;; "Delete current mail." +;; (interactive) +;; (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Trash")) + +;; (defun gmail-archive () +;; "Archive the current or marked mails. +;; This moves them into the All Mail folder." +;; (interactive) +;; (gnus-summary-move-article nil "nnimap+imap.gmail.com:[Gmail]/All Mail")) + +;; (defun gmail-report-spam () +;; "Report the current or marked mails as spam. +;; This moves them into the Spam folder." +;; (interactive) +;; (gnus-summary-move-article nil "nnimap+imap.gmail.com:[Gmail]/Spam")) + +;; (defun gmail-summary-keys () +;; "Some keybindings for Gmail." +;; (local-set-key "y" 'gmail-archive) +;; (local-set-key "x" 'gmail-delete) +;; (local-set-key "$" 'gmail-report-spam)) (add-hook 'gnus-summary-mode-hook 'gmail-summary-keys) diff --git a/src/scame/gnus/gnus-keys.el b/src/scame/gnus/gnus-keys.el index c72357e..ddf57bd 100644 --- a/src/scame/gnus/gnus-keys.el +++ b/src/scame/gnus/gnus-keys.el @@ -1,6 +1,6 @@ ;;; gnus-keys.el --- Gnus keybindings configuration -;; Copyright (C) 2014 Nicolas Lamirault +;; Copyright (C) 2014-2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -23,20 +23,65 @@ ;; Keybindings ;; ------------ -;; (add-hook 'gnus-summary-mode-hook -;; (lambda () -(define-key gnus-summary-mode-map - (kbd "B u") 'gnus-summary-put-mark-as-unread) +(eval-after-load 'gnus-group + '(progn + (defhydra hydra-gnus-group (:color blue) + "Do?" + ("a" gnus-group-list-active "REMOTE groups A A") + ("l" gnus-group-list-all-groups "LOCAL groups L") + ("c" gnus-topic-catchup-articles "Read all c") + ("G" gnus-group-make-nnir-group "Search server G G") + ("g" gnus-group-get-new-news "Refresh g") + ("s" gnus-group-enter-server-mode "Servers") + ("m" gnus-group-new-mail "Compose m OR C-x m") + ("#" gnus-topic-mark-topic "mark #") + ("q" nil "cancel")) + ;; y is not used by default + (define-key gnus-group-mode-map "y" 'hydra-gnus-group/body))) -(define-key gnus-summary-mode-map (kbd "B d") - (lambda () - (interactive) - (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Trash"))) +;; gnus-summary-mode +(eval-after-load 'gnus-sum + '(progn + (defhydra hydra-gnus-summary (:color blue) + "Do?" + ("n" gnus-summary-insert-new-articles "Refresh / N") + ("f" gnus-summary-mail-forward "Forward C-c C-f") + ("!" gnus-summary-tick-article-forward "Mail -> disk !") + ("p" gnus-summary-put-mark-as-read "Mail <- disk") + ("c" gnus-summary-catchup-and-exit "Read all c") + ("e" gnus-summary-resend-message-edit "Resend S D e") + ("R" gnus-summary-reply-with-original "Reply with original R") + ("r" gnus-summary-reply "Reply r") + ("W" gnus-summary-wide-reply-with-original "Reply all with original S W") + ("w" gnus-summary-wide-reply "Reply all S w") + ("#" gnus-topic-mark-topic "mark #") + ("q" nil "cancel")) + ;; y is not used by default + (define-key gnus-summary-mode-map "y" 'hydra-gnus-summary/body))) -(define-key gnus-summary-mode-map (kbd "B s") - (lambda () - (interactive) - (gnus-summary-move-article nil "nnimap+gmail:[Gmail]/Spam"))) +;; gnus-article-mode +(eval-after-load 'gnus-art + '(progn + (defhydra hydra-gnus-article (:color blue) + "Do?" + ("f" gnus-summary-mail-forward "Forward") + ("R" gnus-article-reply-with-original "Reply with original R") + ("r" gnus-article-reply "Reply r") + ("W" gnus-article-wide-reply-with-original "Reply all with original S W") + ("o" gnus-mime-save-part "Save attachment at point o") + ("w" gnus-article-wide-reply "Reply all S w") + ("q" nil "cancel")) + ;; y is not used by default + (define-key gnus-article-mode-map "y" 'hydra-gnus-article/body))) + +(eval-after-load 'message + '(progn + (defhydra hydra-message (:color blue) + "Do?" + ("ca" mml-attach-file "Attach C-c C-a") + ("cc" message-send-and-exit "Send C-c C-c") + ("q" nil "cancel")) + (global-set-key (kbd "C-c C-y") 'hydra-message/body))) (provide 'gnus-keys) diff --git a/src/scame/gnus/gnus-local.el b/src/scame/gnus/gnus-local.el index 1d8aebf..d07edc5 100644 --- a/src/scame/gnus/gnus-local.el +++ b/src/scame/gnus/gnus-local.el @@ -1,6 +1,6 @@ ;;; gnus-local.el --- Localhost IMAP configuration for Gnus -;; Copyright (C) 2015 Nicolas Lamirault +;; Copyright (C) 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -81,7 +81,7 @@ (defun lld-notmuch-file-to-group (file) "Calculate the Gnus group name from the given file name." (let ((group (file-name-directory (directory-file-name (file-name-directory file))))) - (setq group (replace-regexp-in-string ".*/opt/Exchange/" "" group)) + (setq group (replace-regexp-in-string ".*/opt/OrangeExchange/" "" group)) (setq group (replace-regexp-in-string "/$" "" group)) (if (string-match ":$" group) (concat group "INBOX") diff --git a/src/scame/gnus/scame-gnus.el b/src/scame/gnus/scame-gnus.el index 1e0af1a..7377316 100644 --- a/src/scame/gnus/scame-gnus.el +++ b/src/scame/gnus/scame-gnus.el @@ -1,6 +1,6 @@ ;;; scame-gnus.el --- Gnus configuration -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -157,12 +157,12 @@ lbl)) (defalias 'gnus-user-format-function-r 'rs-gnus-get-label) -;; (setq gnus-summary-line-format -;; "%1{%U%R%z: %}%2{%o%}%5{ %[%4i%] %}%4{%-24,24n%}%6{%-4,4ur%}%5{| %}%(%1{%B%}%s%)\n") - -(setq-default gnus-summary-line-format "%1{%U%R%z: %}%2{%&user-date;%}%5{ %[%4i%] %}%4{%-24,24n%}%6{%-4,4ur%}%5{| %}%(%1{%B%}%s%)\n" +(setq-default ;; gnus-summary-line-format "%1{%U%R%z: %}%2{%&user-date;%} %5{ %[%4i%] %}%4{%-24,24n%}%6{%-4,4ur%}%5{| %}%(%1{%B%}%s%)\n" + gnus-summary-line-format "%1{%U%R%z: %}%[%2{%&user-date;%}%] %4{%-24,24n%} %5{| %}%(%1{%B%}%s%)\n" gnus-user-date-format-alist '((t . "%Y-%m-%d %H:%M"))) + + (setq nnmail-extra-headers '(To X-GM-LABELS Newsgroups Content-Type)) ;; TO TEST From 0fa1a94720569b9f5ee0f6758b2bd2121d1fadce Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:32:01 +0100 Subject: [PATCH 33/68] Update OCaml tests Signed-off-by: Nicolas Lamirault --- test/scame-ocaml-test.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/scame-ocaml-test.el b/test/scame-ocaml-test.el index 77de225..0461cf2 100644 --- a/test/scame-ocaml-test.el +++ b/test/scame-ocaml-test.el @@ -30,9 +30,10 @@ (f-mkdir opam-dir)) (with-current-file "var/hello.ml" - (should (featurep 'tuareg))) - ;;(f-delete opam-dir)) - ) + (should (featurep 'tuareg)) + (should (featurep 'merlin)) + (should (featurep 'flycheck-ocaml)) + )) (message (ansi-yellow "[Scame] OCaml: OPAM not installed. No unit tests")))))) (provide 'scame-ocaml-test) From e6d43fa46916a14d81d3e808b160c3ca2bf2e1e6 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:32:10 +0100 Subject: [PATCH 34/68] update copyright Signed-off-by: Nicolas Lamirault --- Makefile | 2 +- addons/init.el | 2 +- src/Cask | 2 +- src/init.el | 2 +- src/scame/scame-custom.el | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 36fd27f..946f495 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2014, 2015 Nicolas Lamirault +# Copyright (C) 2014-2016 Nicolas Lamirault # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/addons/init.el b/addons/init.el index 1837d1b..f663ebd 100644 --- a/addons/init.el +++ b/addons/init.el @@ -1,6 +1,6 @@ ;; init.el --- Emacs initialization file -;; Copyright (c) 2015 Nicolas Lamirault +;; Copyright (c) 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/src/Cask b/src/Cask index 86fd6eb..dab497c 100644 --- a/src/Cask +++ b/src/Cask @@ -1,6 +1,6 @@ ;;; Cask -- Scame cask file -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014-2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/src/init.el b/src/init.el index 0441ea1..47e3943 100644 --- a/src/init.el +++ b/src/init.el @@ -1,6 +1,6 @@ ;; init.el --- Emacs initialization file -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014-2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/src/scame/scame-custom.el b/src/scame/scame-custom.el index f6dab15..065d95d 100644 --- a/src/scame/scame-custom.el +++ b/src/scame/scame-custom.el @@ -1,6 +1,6 @@ ;; scame-custom.el --- Scame customization -;; Copyright (c) 2015 Nicolas Lamirault +;; Copyright (c) 2014-2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by From b179edc08f78dfc298264ffa42d30023b89363a9 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 25 Jan 2016 16:35:39 +0100 Subject: [PATCH 35/68] FIX Refresh packages Signed-off-by: Nicolas Lamirault --- src/scame/scame-pkg.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index d579ffc..864018d 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -38,10 +38,10 @@ )) (package-initialize) +(package-refresh-contents) ;; Bootstrap `use-package' -(unless (package-installed-p 'use-package) - (package-refresh-contents) +(unless (package-installed-p 'use-package) (package-install 'use-package)) ;; Install dependencies From f423a80e75b962da8161e89e8c95d4f3586ff881 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 2 Feb 2016 15:26:58 +0100 Subject: [PATCH 36/68] Update Gnus for local configuration Signed-off-by: Nicolas Lamirault --- src/scame/gnus/gnus-local.el | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/scame/gnus/gnus-local.el b/src/scame/gnus/gnus-local.el index d07edc5..a55d5ca 100644 --- a/src/scame/gnus/gnus-local.el +++ b/src/scame/gnus/gnus-local.el @@ -33,6 +33,9 @@ ;; - msmtp to send emails ;; ------------------------------------------ +;; Customization : +;; (setq scame-maildir-local "/opt/Exchange") + ;; IMAP Localhost offlineimap @@ -43,11 +46,19 @@ ;; "/usr/lib/dovecot/imap -o mail_location=maildir:/opt/Exchange:LAYOUT=fs:INBOX=/opt/Exchange/INBOX"))) ;; IMAP Localhost imapsync +;; (setq gnus-select-method +;; '(nnimap "Exchange" +;; (nnimap-stream shell) +;; (nnimap-shell-program +;; "/usr/lib/dovecot/imap -o mail_location=maildir:/opt/Exchange:LAYOUT=fs:INBOX=/opt/Exchange/Inbox"))) + (setq gnus-select-method - '(nnimap "Exchange" + `(nnimap "Exchange" (nnimap-stream shell) (nnimap-shell-program - "/usr/lib/dovecot/imap -o mail_location=maildir:/opt/OrangeExchange:LAYOUT=fs:INBOX=/opt/OrangeExchange/Inbox"))) + (concat "/usr/lib/dovecot/imap -o mail_location=maildir:" + ,local-maildir ":LAYOUT=fs:INBOX=" + ,local-maildir "/Inbox")))) ;; (setq gnus-secondary-select-methods From 5483cd9f043e75612a369f074c3d3ff717bc11f6 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 10 Feb 2016 10:04:02 +0100 Subject: [PATCH 37/68] Add company-shell Signed-off-by: Nicolas Lamirault --- src/scame/packages/03_completion.el | 6 +++++- src/scame/scame-pkg.el | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/scame/packages/03_completion.el b/src/scame/packages/03_completion.el index 0fe2e79..d1bc95c 100644 --- a/src/scame/packages/03_completion.el +++ b/src/scame/packages/03_completion.el @@ -1,6 +1,6 @@ ;;; 03_completion.el --- Completion system -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -30,6 +30,10 @@ :init (add-hook 'after-init-hook 'global-company-mode) :diminish company-mode) +(use-package company-shell + :config (progn + (add-to-list 'company-backends 'company-shell))) + (provide '03_completion) ;;; 03_completion.el ends here diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 864018d..65b328c 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -41,7 +41,7 @@ (package-refresh-contents) ;; Bootstrap `use-package' -(unless (package-installed-p 'use-package) +(unless (package-installed-p 'use-package) (package-install 'use-package)) ;; Install dependencies @@ -98,6 +98,7 @@ ;; Completion company + company-shell auto-complete ;; Projects From 5b1184b35fe56865e5e3f11907ad84470153ea37 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 10 Feb 2016 10:22:42 +0100 Subject: [PATCH 38/68] Activate spaceline Signed-off-by: Nicolas Lamirault --- src/scame/gnus/gnus-local.el | 4 ++-- src/scame/packages/13_modeline.el | 27 ++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/scame/gnus/gnus-local.el b/src/scame/gnus/gnus-local.el index a55d5ca..0c80e31 100644 --- a/src/scame/gnus/gnus-local.el +++ b/src/scame/gnus/gnus-local.el @@ -57,8 +57,8 @@ (nnimap-stream shell) (nnimap-shell-program (concat "/usr/lib/dovecot/imap -o mail_location=maildir:" - ,local-maildir ":LAYOUT=fs:INBOX=" - ,local-maildir "/Inbox")))) + ,scame-maildir-local ":LAYOUT=fs:INBOX=" + ,scame-maildir-local "/Inbox")))) ;; (setq gnus-secondary-select-methods diff --git a/src/scame/packages/13_modeline.el b/src/scame/packages/13_modeline.el index c31f486..2b7df96 100644 --- a/src/scame/packages/13_modeline.el +++ b/src/scame/packages/13_modeline.el @@ -1,6 +1,6 @@ ;;; 13_modeline.el --- Mode-line configuration -;; Copyright (c) 2014, 2015 Nicolas Lamirault +;; Copyright (c) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -70,6 +70,31 @@ ;; buffer-position ;; hud)) +(use-package spaceline + :config (use-package spaceline-config + :config + (setq powerline-default-separator 'wave) + (spaceline-define-segment line-column + "The current line and column numbers." + "l:%l c:%2c") + ;;(spaceline-helm-mode) + (spaceline-toggle-battery-on) + (spaceline-toggle-minor-modes-on) + (spaceline-toggle-flycheck-info-off) + (spaceline-toggle-buffer-encoding-off) + (spaceline-toggle-buffer-encoding-abbrev-off) + (spaceline-toggle-buffer-size-off) + (spaceline-toggle-persp-name-on) + ;; (spaceline-define-segment time + ;; "The current time." + ;; (format-time-string "%H:%M")) + ;; (spaceline-define-segment date + ;; "The current date." + ;; (format-time-string "%h %d")) + ;; (spaceline-toggle-time-on) + (spaceline-emacs-theme 'date 'time))) + + (provide '13_modeline) ;;; 13_modeline.el ends here From 2bca65fa0486cbf922c61cbcab5094324ea09ec4 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Fri, 12 Feb 2016 11:20:44 +0100 Subject: [PATCH 39/68] Set git commit summary max length Signed-off-by: Nicolas Lamirault --- src/scame/packages/19_vc.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/scame/packages/19_vc.el b/src/scame/packages/19_vc.el index b3450dc..61a27b9 100644 --- a/src/scame/packages/19_vc.el +++ b/src/scame/packages/19_vc.el @@ -1,6 +1,6 @@ ;;; 19_vc.el --- Version control -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -73,5 +73,7 @@ :bind (("C-c g t" . git-timemachine))) +(setq git-commit-summary-max-length 80) + (provide '19_vc) ;;; 19_vc.el ends here From 4c02ef75c869e43be601990c1b1d4e306c2346c2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 24 Feb 2016 12:03:28 +0100 Subject: [PATCH 40/68] Add org-bullets Signed-off-by: Nicolas Lamirault --- src/scame/packages/91_orga.el | 45 ++++++++++++++++++++++++++++++++++- src/scame/scame-pkg.el | 1 + 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/scame/packages/91_orga.el b/src/scame/packages/91_orga.el index 2acfd2e..8d369ba 100644 --- a/src/scame/packages/91_orga.el +++ b/src/scame/packages/91_orga.el @@ -1,6 +1,6 @@ ;;; 91_orga.el --- Organisation -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -301,6 +301,49 @@ ;; Either the Key ID or set to nil to use symmetric encryption. (setq org-crypt-key nil))) + + + ;; --- org-bullets-bullet-list + + ;; hexagrams + ;; “✡” “⎈” “✽” “✲” “✱” “✻” “✼” “✽” “✾” “✿” “❀” “❁” “❂” “❃” “❄” “❅” “❆” “❇” + + ;; circles + ;; “○” “☉” “◎” “◉” “○” “◌” “◎” “●” “◦” “◯” “⚪” “⚫” “⚬” “❍” “○” “⊙” “⊚” “⊛” “∙” “∘” + + ;; special circles + ;; “◐” “◑” “◒” “◓” “◴” “◵” “◶” “◷” “⚆” “⚇” “⚈” “⚉” “♁” “⊖” “⊗” “⊘” + + ;; crosses + ;; “✙” “♱” “♰” “☥” “✞” “✟” “✝” “†” “✠” “✚” “✜” “✛” “✢” “✣” “✤” “✥” + + ;; poker sybmols + ;; “♠” “♣” “♥” “♦” “♤” “♧” “♡” “♢” + + ;; yinyang + ;; “☯” “☰” “☱” “☲” “☳” “☴” “☵” “☶” “☷” + + ;; special symbols + ;; “☀” “♼” “☼” “☾” “☽” “☣” “§” “¶” “‡” “※” “✕” “△” “◇” “▶” “◀” “◈” + + ;; --- org-ellipsis + + ;; “↝” “⇉” “⇝” “⇢” “⇨” “⇰” “➔” “➙” “➛” “➜” “➝” “➞” + ;; “➟” “➠” “➡” “➥” “➦” “➧” “➨” + ;; “➩” “➪” “➮” “➯” “➱” “➲” + ;; “➳” “➵” “➸” “➺” “➻” “➼” “➽” + ;; “➢” “➣” “➤” “≪”, “≫”, “«”, “»” + ;; “↞” “↠” “↟” “↡” “↺” “↻” + ;; “⚡” + ;; …, ▼, ↴, , ∞, ⬎, ⤷, ⤵ + + + (use-package org-bullets + :init (progn + (setq org-ellipsis "⚡⚡⚡") + (setq org-bullets-bullet-list '("☀" "♼" "☼" "☾" "☽" "☣" "§" "¶" "‡" "※" "✕" "△" "◇" "▶" "◀" "◈")) + )) + ) (provide '91_orga) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 65b328c..4890c3c 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -366,6 +366,7 @@ (add-to-list 'unstable-packages 'org-gcal t) (add-to-list 'unstable-packages 'org-agenda-property t) (add-to-list 'unstable-packages 'org-journal t) + (add-to-list 'unstable-packages 'org-bullets t) (add-to-list 'unstable-packages 'orgbox t) (add-to-list 'unstable-packages 'org-caldav t)) From 7766910b3521aea5367767c4cae128a2c6941fbc Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 24 Feb 2016 13:35:50 +0100 Subject: [PATCH 41/68] Add EditorConfig Signed-off-by: Nicolas Lamirault --- src/scame/packages/30_dev.el | 6 ++++ src/scame/scame-pkg.el | 57 +----------------------------------- 2 files changed, 7 insertions(+), 56 deletions(-) diff --git a/src/scame/packages/30_dev.el b/src/scame/packages/30_dev.el index 44636bf..68a2bdb 100644 --- a/src/scame/packages/30_dev.el +++ b/src/scame/packages/30_dev.el @@ -38,6 +38,12 @@ ;; (global-fci-mode 1))) +(use-package editorconfig + :init (progn + (add-to-list 'auto-mode-alist '("\\.editorconfig" . conf-unix-mode)) + (editorconfig-mode 1))) + + (use-package projectile ;; :defer scame-defer-package ;;:init (projectile-global-mode 1) diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index 4890c3c..f508885 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -102,75 +102,20 @@ auto-complete ;; Projects + editorconfig projectile helm-projectile persp-projectile ibuffer-projectile helm-project-persist - ;; ;; https://github.com/dougm/go-projectile/issues/2 - ;; go-projectile - ;; ;; https://github.com/golang/lint/issues/111 - ;; golint - - ;; ;; https://github.com/proofit404/anaconda-mode/issues/98 - ;; anaconda-mode - ;; ;;https://github.com/proofit404/company-anaconda/issues/3 - ;; company-anaconda - ;; ;; https://github.com/tkf/emacs-jedi-direx/issues/17 - ;; jedi-direx - - ;; rhtml-mode company-inf-ruby - - ;; erlang - - ;; ghci-completion - - ;; ;; https://github.com/Sarcasm/flycheck-irony/issues/4 - ;; irony - ;; flycheck-irony - ;; ;; https://github.com/ikirill/irony-eldoc/issues/3 - ;; irony-eldoc - - ;; ;; https://github.com/rust-lang/rust-mode/issues/87 - ;; rust-mode - - ;; https://github.com/dryman/toml-mode.el/issues/2 toml-mode - ;; https://github.com/Sliim/helm-project-persist/issues/2 - - ;; IRC - ;; https://github.com/jorgenschaefer/circe/issues/202 - ;; circe - ;; rcirc-groups - ;; ;; https://github.com/fgallina/rcirc-alertify/issues/1 - ;; rcirc-alertify - ;; rcirc-notify - - ;; ;; Org - ;; org org-gcal org-agenda-property org-journal orgbox org-caldav ;; Dired ;; https://github.com/Fuco1/dired-hacks/issues/33 dired-filter dired-open dired-rainbow dired-subtree ;; https://github.com/vapniks/syslog-mode/issues/12 - ;; ;; Sysadmin - ;; nginx-mode - ;; syslog-mode - ;; apache-mode - - ;; ;; Gnus - ;; ;; https://github.com/vapniks/gnus-summary-ext/issues/3 - ;; gnus-summary-ext - ;; bbdb - ;; ;; https://github.com/vapniks/bbdb-ext/issues/1 - ;; bbdb-ext - ;; ;; https://gitlab.com/iankelling/bbdb-csv-import/issues/2 - ;; bbdb-csv-import - ;; ;; https://github.com/DamienCassou/notmuch-labeler/issues/2 - ;; notmuch-labeler - ;; Misc ;; https://github.com/ruediger/weather-metno-el/issues/11 weather-metno From 0d9367940519a866b4b069323b90e75ee44cd6d4 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Wed, 24 Feb 2016 13:48:46 +0100 Subject: [PATCH 42/68] rustfmt now in rust-mode Signed-off-by: Nicolas Lamirault --- src/scame/packages/44_rust.el | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/scame/packages/44_rust.el b/src/scame/packages/44_rust.el index 877e8f1..a9f285c 100644 --- a/src/scame/packages/44_rust.el +++ b/src/scame/packages/44_rust.el @@ -1,6 +1,6 @@ ;;; 44_rust.el -- Rust configuration -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -36,9 +36,6 @@ (local-set-key (kbd "C-x r p") 'cargo-test-current-project) )))) - (use-package :rustfmt - :config (add-hook 'rust-mode-hook #'rustfmt-enable-on-save)) - (use-package racer :init (progn (setq racer-rust-src-path (getenv "RUST_HOME")) From db63e4278a3289013b5db23d23eb22a67c314120 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 08:48:03 +0100 Subject: [PATCH 43/68] Add documentation Signed-off-by: Nicolas Lamirault --- doc/Makefile | 50 ++++++ doc/changelog.adoc | 169 ++++++++++++++++++ doc/description.adoc | 6 + doc/license.adoc | 14 ++ doc/scame.adoc | 407 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 646 insertions(+) create mode 100644 doc/Makefile create mode 100644 doc/changelog.adoc create mode 100644 doc/description.adoc create mode 100644 doc/license.adoc create mode 100644 doc/scame.adoc diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..cdc41b3 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,50 @@ +# Copyright (C) 2016 Nicolas Lamirault + +# This program 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 . + +SHELL = /bin/bash + +BOOK = scame.adoc + +NO_COLOR=\033[0m +OK_COLOR=\033[32;01m +ERROR_COLOR=\033[31;01m +WARN_COLOR=\033[33;01m + +all: help + +help: + @echo -e "$(OK_COLOR)==== Resume ====$(NO_COLOR)" + @echo -e "$(WARN_COLOR)pdf$(NO_COLOR) : Make PDF resume" + @echo -e "$(WARN_COLOR)html$(NO_COLOR) : Make HTML resume" + @echo -e "$(WARN_COLOR)epub$(NO_COLOR) : Make EPUB resume" + @echo -e "$(WARN_COLOR)clean$(NO_COLOR) : Cleanup" + +.PHONY: pdf +pdf: + asciidoctor-pdf $(BOOK) + +.PHONY: html +html: + asciidoctor $(BOOK) + +.PHONY: epub +epub: + asciidoctor-epub3 $(BOOK) + +clean: + find . -type f -name \*.html -exec rm -f {} \; + find . -type f -name \*.pdf -exec rm -f {} \; + find . -type f -name \*.pdfmarks -exec rm -f {} \; + find . -type f -name \*.epub -exec rm -f {} \; diff --git a/doc/changelog.adoc b/doc/changelog.adoc new file mode 100644 index 0000000..1100759 --- /dev/null +++ b/doc/changelog.adoc @@ -0,0 +1,169 @@ +<<< +== Changelog + +=== 1.3.0 (10/14/2015) + +* Setup CircleCI continuous integration +* FIX OCaml configuration +* Setup rust development environment +* Update modeline + +=== 1.2.0 (07/30/2015) + +* Remove Cask dependency +* `#49` : Add a feature to load only some modules +* Add ranger +* Replace guide-key with which-key +* `#50` : Error with helm-find-files +* Add py-yapf for Python + +=== 1.1.0 (07/09/2015) + +* Add fishshell mode +* Add asciidoc mode +* `#45` : Error with appoitment +* Update keybindings using Hydra +* `#47` : Choice of completion backend + +=== 1.0.0 (04/03/2015) + +* Update org-mode and setup appointment +* Add ace-window +* Add swiper +* Remove ido and reconfigure helm +* Update smart-mode-line +* Update notifications system (sauron) +* Refactoring gnus and IMAP on localhost +* FIX Load libraries from vendoring directory +* Add Lua support +* Add engine-mode for search providers +* Setup irony for c, c++ and objective-c +* `#41`: Change init-loader to el-init + +=== 0.13.0 (03/02/2015) + +* Setup helm-mt to manage multi terminals +* Setup calendars using calfw (ics, Org, ...) +* Add week numbers in calendar +* Init specify packages version in Cask file +* Add hydra to manage key bindings + +=== 0.12.0 (01/20/2015) + +* Setup visible bell +* FIX Docker image creation +* Replace w3m rendering by shr in Gnus +* `#30` : Remove w3m (due to Cask-270) +* Remove Emacs 24.3 support +* Add helm-occur + +=== 0.11.0 (01/06/2015) + +* Init Scame archive for stable release +* Split unit tests +* FIX Common Lisp setup +* FIX Cloud tools setup +* FIX ERC setup +* Refactoring unit tests for using Overseer +* `#36` : Add vendoring directory +* Add twitterring-mode +* Setup bug-reference-mode + +=== 0.10.0 (12/22/2014) + +* `#35`: Warning after installation with invalid 'load-path' +* Update TravisCI configuration +* Setup music and radio using EMMS +* Init continuous integration watcher using Butler for Jenkins +* Update dired configuration + +=== 0.9.0 (10/24/2014) + +* Update Javascript configuration +* Refactoring php-mode and web-mode +* Init configuration for Elixir +* `#22`: Add discover-my-major +* `#32`: Add go-errcheck package +* `#31`: Add golint package +* Update GPG And Gnus setup +* Update Linux configuration for offlineimap +* Update IRC and IM configurations +* `#24`: Add the platinum searcher +* FIX cider setup +* Add pip-requirements package + +=== 0.8.0 (09/11/2014) + +* Update Common Lisp environment +* Update TravisCI setup +* FIX Remove Emacs 23 support +* Configure BBDB +* Add Gnus configuration +* Add neotree package + +=== 0.7.0 (07/15/2014) + +* Add Docker container to launch unit tests +* FIX unit tests +* Due to Emacs 24.4 required, remove some modules. +* FIX Anaconda configuration +* Change Smex keybindings +* FIX golang configuration +* FIX Remove password manager due website down +* Add Rust support + +=== 0.6.0 (06/17/2014) + +* Add toml-mode mode +* Add Dockerfile to publish a Scame image on the Docker registry +* Update Common lisp and go setup +* FIX Enable global-linum-mode +* FIX UTF-8 encodings +* `#18`: Add go-projectile +* `#13`: Refactor unit test to creates sandbox to test Scame installation and not use local installation +* Remove cerbere +* Update Python and Go configuration to use phpunit.el and gotest.el + +=== 0.5.0 (04/28/2014) + +* Migrate from MIT to GPL-3 +* `#16`: Add C and C++ configuration +* `#14`: Add sphinx-doc +* Add perspective for projectile +* `#12`: FIX Key bindings not enabled by default +* Add perspective.el +* Migrate to cerbere mode (gotest.el, phpunit.el, tox.el) +* `#11`: Add plsense-direx +* `#9`: Add jedi-direx +* `#8`: Add go-direx +* `#7`: Change Scame initialisation filename +* Add unit tests for Scame configuration + +=== 0.4.0 (04/15/2014) + +* `#6`: Update command argument doens't perform a git pull on scame local installation +* `#4`: Add uniquify configuration +* Add a command top open the Scame user customization file +* Refactoring Scame installation directory +* Migrating to a CLI in Emacs Lisp using commander.el +* `#3`: configure helm-projectile and key binding +* `#2`: configure helm-imenu and key binding +* Allow users to customize Scame default keymap prefix +* Uniform keybindings +* Migrate to use-package for packages configuration + +=== 0.3.0 (03/27/2014) + +* Add Cask installation +* Add EVM installation + +=== 0.2.0 (03/22/2014) + +* Customization in *$HOME/.config/scame/user.el* file +* Setup Drone.io build +* FIX Scame's installer + +=== 0.1.0 (03/20/2014) + +* Add installer +* Init project from https://github.com/nlamirault/divona[Divona] diff --git a/doc/description.adoc b/doc/description.adoc new file mode 100644 index 0000000..a6c5b9a --- /dev/null +++ b/doc/description.adoc @@ -0,0 +1,6 @@ +== Description + +Scame is a "Starter Kit" for *Gnu Emacs* (>= 24). + +NOTE: Last version of this documentation could be find on this website : +https://github.com/nlamirault/scame diff --git a/doc/license.adoc b/doc/license.adoc new file mode 100644 index 0000000..9778be7 --- /dev/null +++ b/doc/license.adoc @@ -0,0 +1,14 @@ +<<< +== License + +This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit + +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +You may also send a letter to: + +Creative Commons + +PO Box 1866 + +Mountain View, CA 94042 + +Phone: 1-415-429-5471 diff --git a/doc/scame.adoc b/doc/scame.adoc new file mode 100644 index 0000000..4fcb172 --- /dev/null +++ b/doc/scame.adoc @@ -0,0 +1,407 @@ += Scame +Nicolas Lamirault +v0.1.0 +:revnumber: 1.4.0 +:revdate: 02/24/2016 +:description: Scame documentation +:doctype: book +// Settings: +:compat-mode: +:experimental: +:icons: font +:listing-caption: Listing +:sectnums: +:toc: +:toclevels: 3 +ifdef::backend-pdf[] +// :title-logo-image: image:chapters/images/sample-title-logo.jpg[pdfwidth=4.25in,align=center] +:title-logo-image: image:chapters/images/cover.svg[scaledwidth=30%,align=center] +:pygments-style: tango +//:source-highlighter: pygments +:source-highlighter: coderay +endif::[] + + + +include::license.adoc[] + +include::description.adoc[] + +<<< +== Installation + +=== Release + +Download the last version from Github and install it into the Emacs directory : + +[source,bash] +---- +$ wget https://github.com/nlamirault/scame/releases/download/1.0.0/scame-1.0.0.tar.gz +$ tar zxvf scame-1.0.0.tar.gz +$ cp -r scame-1.0.0/* ~/.emacs.d +---- + +=== From source + +You could clone the repository into the Emacs directory: + +[source,bash] +---- +$ rm -r ~/.emacs.d && mkdir -p ~/.emacs.d/scame +$ git clone https://github.com/nlamirault/scame +$ cp -r scame/src/* ~/.emacs.d/ +$ cd ~/.emacs.d && cask install +---- + +=== Configuration + +You could enable or not some modules using *init.el* file : + +[source,elisp] +---- +(custom-set-variables + '(scame-golang t) + '(scame-ruby nil) + '(scame-clojure nil) + '(scame-addons (quote (libmpdee dionysos))) + ...) +---- + +.Customization +NOTE: You could use Emacs customization features (scame group) + + +=== Vendoring + +If directory `$HOME/.emacs.d/vendor` exists, Scame will add to load-path +each directory in this directory. + + +=== Personalisation + +If file `$HOME/.config/scame/scame-user.el` exists, Scame load it. + +.scame-user.el +[source,elisp] +---- +;; User +(setq user-full-name "Nicolas Lamirault") +(setq user-mail-address "nicolas.lamirault@gmail.com") + +;; Calendars +(setq google-ical-calendar + (setq google-ical-calendars + '(("https://www.google.com/calendar/ical/.../basic.ics" "Mine" "LightBlue") + ("https://www.google.com/calendar/ical/.../basic.ics" "Family" "Yellow") + ("https://www.google.com/calendar/ical/.../basic.ics" "Work" "Green"))) + +;; UI +(load-theme 'monokai t) + +;; Fonts +(custom-set-faces + '(default ((t (:family "Bitstream Vera Sans Mono" + :foundry "bitstream" + :slant normal + :weight normal + :height 81 + :width normal))))) + +(provide 'scame-user) +---- + +== Keymap + +.Launch menu +NOTE: Scame provides a main menu : *C-c s SPC* + +=== UI + +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|=================================== +Keybinding,Description +C-down,Scroll line down +C-up,Scroll line up +C-c,Select the window to the left of the current one +C-c,Select the window to the right of the current one +C-c,Select the window to the up of the current one +C-c,Select the window to the down of the current one +|=================================== + +=== Completion + +It depends on *scame-completion-method*. + +.Ivy +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x c F,counsel-find-file +C-x c f,counsel-describe-function +C-x c b,ivy-switch-buffer +C-x c y,counsel-info-lookup-symbol +C-x c i,counsel-imenu +C-x c r,ivy-recentf +|==================================== + +.Helm +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x c F,helm-find-files +C-x c f,helm-for-files +C-x c b,helm-buffers-list +C-x c x,helm-M-x +C-x c y,helm-show-kill-ring +C-x c i,helm-imenu +C-x c r,helm-recentf +|==================================== + + +=== Development + +See https://github.com/bbatsov/projectile[Projectile] + +.Projectile +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-c s P,launch menu for projectile +C-c p SPC,ivy-switch-project or helm-projectile +C-c p s w,projectile-persp-switch-project +|==================================== + +.Go +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x g r,go-remove-unused-imports +C-x g i,go-goto-imports +C-x g j,godef-jump +C-x g d,show the go documentation for a given package +C-x g t,launch current unit test +C-x g f,launch tests in current file +C-x g p,launch tests in all project +C-x g x,display source code in tree style viewer +C-c C-a,prompt you for an import path +|==================================== + +.Python +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x y t,launch current unit test +C-x y f,launch tests in current file +C-c M-d,generate Sphinx documentation for current function +C-c ! C-c,check syntax in the current buffer +|==================================== + +.Php +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x p t,launch current unit test +C-x p f,launch tests in current file +C-x p p,launch tests in all project +|==================================== + +.Git +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-c g s,magit-status +C-c g d,magit-pull +C-c g p,magit-push +C-c g l,magit-log +C-c g b,magit-branch-manager +C-c g m,Turn on/off git-gutter+-mode globally +C-c g <,git-gutter+-previous-hunk +C-c g >,git-gutter+-next-hunk +|==================================== + + +See https://github.com/nex3/perspective-el[Perspective] + +.Perspective +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-x x s,persp-switch +C-x x n,persp-next +C-x x p,persp-prev +C-x x c,persp-kill +C-x x k,persp-remove-buffer +C-x x a,persp-add-buffer +C-x x i,persp-import +C-x x r,persp-rename +|==================================== + +=== Misc + +.BBDB +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-c d s,bbdb +C-c d n,bbdb-search-name +C-c d m,bbdb-search-mail +|==================================== + +.Org +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-c o a,org-agenda +C-c o b,org-iswitchb +C-c o l,org-store-link +|==================================== + +.GPG +[grid="rows",format="csv"] +[options="header",cols="^,<"] +|==================================== +Keybinding,Description +C-c c f,Encrypt file +C-c c F,Decrypt file +C-c c r,Encrypt region +C-c c R,Decrypt region +C-c c l,List keys +|==================================== + +If you ever forget any of Scame's keybindings just do a : *C-c s C-h* + +You can change the default keymap prefix *C-c s* like this: + +.scame-user.el +[source,elisp] +---- +(setq scame-keymap-prefix (kbd "C-c C-s")) +---- + + +== Mail + +Scame provides some Gnus configuration : + +=== Gmail + +Configure IMAP and SMTP informations in ~/.authinfo : + +.~/.authinfo +[source,bash] +---- +machine imap.gmail.com login your-name@gmail.com password your-password port 993 +machine smtp.gmail.com login your-name@gmail.com password your-password port 465 +---- +and make sure that no-one else can read it with : + +.~/.authinfo +[source,bash] +---- +chmod 600 ~/.authinfo +---- + +Then launch Scame main menu (*C-c s SPC*), and choose GMail (with *M*) + +=== Local + +This configuration use : + +- http://isync.sourceforge.net/[mbsync] to sync IMAP in maildir format +- http://www.dovecot.org/[dovecot] for local IMAP server +- http://msmtp.sourceforge.net/[msmtp] to send emails + +A sample file for *mbsync* : + +.~/.config/isync/exchange.isyncrc +[source,bash] +---- +IMAPAccount exchange +Host exchange.xxx.xxxx.xx +User xxxxxxxxx +Pass xxxxxxxxx +UseIMAPS yes +CertificateFile ~/.cert/exchange.pem + +IMAPStore exchange-remote +Account exchange + +MaildirStore exchange-local +# The trailing "/" is important +Path /opt/Exchange/ +Inbox /opt/Exchange/Inbox +Flatten . + +Channel exchange +Master :exchange-remote: +Slave :exchange-local: +# Or include everything +Patterns INBOX * +# Automatically create missing mailboxes, both locally and on the server +Create Both +Expunge Both +# Save the synchronization state files in the relevant directory +SyncState * +---- + +A sample file for *msmtp* : + +.~/.config/msmtp/msmtprc +[source,bash] +---- +################## +defaults +#tls on +#tls_starttls on +#tls_trust_file /home/user/etc/exchange.pem + +account ft +host xxxxxxxxxxxxxx +domain xxxxxxxxxxxx +auth login +user xxxxxxxxxx +from foo.bar@xxxxxxxxxx.com +password xxxxxxxxxxxxx +port 25 +logfile /tmp/.msmtplog.txt +################## +---- + + + + +== Calendars + +To setup a Google calendars set the `google-ical-calendars` variable using +private ics URI. + +.scame-user.el +[source,elisp] +---- +(setq google-ical-calendars + '(("https://www.google.com/calendar/ical/xxxxxxxxx/basic.ics" + "Mine" + "LightBlue") + ("https://www.google.com/calendar/ical/xxxxxxxxxx/basic.ics" + "Family" + "Yellow") + ("https://www.google.com/calendar/ical/xxxxxxxxx/basic.ics" + "Work" + "White"))) +---- + +Then launch Scame main menu (*C-c s SPC*), and choose Google (with *g*) + + +include::changelog.adoc[] From b36778fba0d897fcaeae760f18d13ae02daad51e Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 08:48:11 +0100 Subject: [PATCH 44/68] Refactoring Signed-off-by: Nicolas Lamirault --- README.md | 334 +----------------------------------------------------- 1 file changed, 1 insertion(+), 333 deletions(-) diff --git a/README.md b/README.md index e257772..55aab94 100644 --- a/README.md +++ b/README.md @@ -16,336 +16,7 @@ with [GNU Emacs][] 23 and below, or with other flavors of Emacs (e.g. XEmacs). The current version has been tested on Linux and Mac OS X. -- [Installation](#installation) - - [Release file](#from-release-file) - - [Source](#from-source) - - [Docker](#from-docker) -- [Customization](#customization) -- [Vendoring](#vendoring) -- [Personalisation](#Personalisation) -- [Keymap](#keymap) -- [Mail](#mail) -- [Calendars](#calendars) -- [Debug](#debug) -- [Support](#support) -- [Contribute](#contribute) -- [Development](#development) -- [License](#license) -- [ChangeLog](#changelog) -- [Contact](#contact) - -## Installation - -### From release file - -* Download archive : - - $ wget https://github.com/nlamirault/scame/releases/download/1.0.0/scame-1.0.0.tar.gz - -* Installation : - - $ tar zxvf scame-1.0.0.tar.gz - $ cp -r scame-1.0.0/* ~/.emacs.d - - -### From source - -* Clone the repository : - - $ rm -r ~/.emacs.d && mkdir -p ~/.emacs.d/scame - $ git clone https://github.com/nlamirault/scame - -* Installation : - - $ cp -r scame/src/* ~/.emacs.d/ - $ cd ~/.emacs.d && cask install - -### From Docker - -* Search from registry the Scame image : - - $ docker search scame - -* Download the Scame image : - - $ docker pull nlamirault/scame:1.0.0 - -* Launch Scame image : - - $ docker run -it --rm=true nlamirault/scame:1.0.0 -e DISPLAY=$(DISPLAY) -v /tmp/.X11-unix:/tmp/.X11-unix emacs-snapshot - - -## Customization - -You could enable or not some modules using *init.el* file : - -```el -(custom-set-variables - '(scame-golang t) - '(scame-ruby nil) - '(scame-clojure nil) - '(scame-addons (quote (libmpdee dionysos))) - ...) -``` - -## Vendoring - -If directory `$HOME/.emacs.d/vendor` exists, [Scame][] will add to load-path -each directory in this directory. - -## Personalisation - -If file `$HOME/.config/scame/scame-user.el` exists, [Scame][] load it. -Example of customization : - -```el -;; User -(setq user-full-name "Nicolas Lamirault") -(setq user-mail-address "nicolas.lamirault@gmail.com") - -;; Calendars -(setq google-ical-calendar - (setq google-ical-calendars - '(("https://www.google.com/calendar/ical/.../basic.ics" "Mine" "LightBlue") - ("https://www.google.com/calendar/ical/.../basic.ics" "Family" "Yellow") - ("https://www.google.com/calendar/ical/.../basic.ics" "Work" "Green"))) - -;; UI -(load-theme 'monokai t) - -;; Fonts -(custom-set-faces - '(default ((t (:family "Bitstream Vera Sans Mono" - :foundry "bitstream" - :slant normal - :weight normal - :height 81 - :width normal))))) - -(provide 'scame-user) -``` - - -## Keymap - -### UI - -Keybinding | Description ------------------------|------------------------------------------------------------ -C-down | Scroll line down -C-up | Scroll line up -C-c | Select the window to the left of the current one -C-c | Select the window to the right of the current one -C-c | Select the window to the up of the current one -C-c | Select the window to the down of the current one - -### Completion - -Set `scame-completion-method`. - -#### Helm - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x c F | helm-find-files -C-x c f | helm-for-files -C-x c b | helm-buffers-list -C-x c x | helm-M-x -C-x c y | helm-show-kill-ring -C-x c i | helm-imenu -C-x c r | helm-recentf - -#### Ivy - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x c F | counsel-find-file -C-x c f | counsel-describe-function -C-x c b | ivy-switch-buffer -C-x c y | counsel-info-lookup-symbol -C-x c i | counsel-imenu -C-x c r | ivy-recentf - -### Swoop - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-o | Swoop -C-M-o | Swoop-multi -M-o | Swoop-pcre-regexp - -### Smex - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x M-x | smex -C-x M-X | smex-major-mode-commands - - -### Projectile - -See [projectile][] for default keybindings - -Keybinding | Description -------------------------|------------------------------------------------------------ -C-c p SPC | ivy-switch-project or helm-projectile -C-c p s w | projectile-persp-switch-project - -### Python-mode - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x y t | launch current unit test -C-x y f | launch tests in current file -C-c M-d | generate Sphinx documentation for current function -C-c ! C-c | check syntax in the current buffer -C-x y d | helm-pydoc - -### Go mode - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x g r | go-remove-unused-imports -C-x g i | go-goto-imports -C-x g j | godef-jump -C-x g d | show the go documentation for a given package -C-x g t | launch current unit test -C-x g f | launch tests in current file -C-x g p | launch tests in all project -C-x g x | display source code in tree style viewer -C-c C-a | prompt you for an import path - -### PHP Mode - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x p t | launch current unit test -C-x p f | launch tests in current file -C-x p p | launch tests in all project - - -### Perl Mode - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x e d | helm-perldoc - - -### Ruby - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-' | Convert symbol to simple quote string -C-" | Convert symbol to double quote string -C-: | Convert string to symbol -C-; | Clear string content - -### Git - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c g s | magit-status -C-c g d | magit-pull -C-c g p | magit-push -C-c g l | magit-log -C-c g b | magit-branch-manager -C-c g m | Turn on/off git-gutter+-mode globally -C-c g < | git-gutter+-previous-hunk -C-c g > | git-gutter+-next-hunk - -### Perspective - -See [perspective][] - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-x x s | persp-switch -C-x x n | persp-next -C-x x p | persp-prev -C-x x c | persp-kill -C-x x k | persp-remove-buffer -C-x x a | persp-add-buffer -C-x x i | persp-import -C-x x r | persp-rename - -### Gnus / BBDB - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c d s | bbdb -C-c d n | bbdb-search-name -C-c d m | bbdb-search-mail -C-c d h | helm-bbdb - -### IRC / IM - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c i c | Launch IRC mode -C-c i j | Jabber connect all -C-c i o | Jabber disconnect -C-c i i | Jabber chat with -C-c i r | Jabber display roster - -### Org - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c o a | org-agenda -C-c o b | org-iswitchb -C-c o l | org-store-link - -### Encryption - -Keybinding | Description ----------------------|------------------------------------------------------------ -C-c c f | Encrypt file -C-c c F | Decrypt file -C-c c r | Encrypt region -C-c c R | Decrypt region -C-c c l | List keys - -### Scame mode - -Keybinding | Description -----------------------|------------------------------------------------------------ -C-c s SPC | Hydra Scame keybindings -C-c s P | Hydra projectile - | - -If you ever forget any of Scame's keybindings just do a: -C-c s C-h - -You can change the default keymap prefix C-c s like this: - -```el -(setq scame-keymap-prefix (kbd "C-c C-s")) -``` - - -## Mail - -[Scame][] provides a Gmail configuration for IMAP access. - - -## Calendars - -To setup a Google calendars set the `google-ical-calendars` variable using -private ics URI. - -```el -(setq google-ical-calendars - '(("https://www.google.com/calendar/ical/xxxxxxxxx/basic.ics" - "Mine" - "LightBlue") - ("https://www.google.com/calendar/ical/xxxxxxxxxx/basic.ics" - "Family" - "Yellow") - ("https://www.google.com/calendar/ical/xxxxxxxxx/basic.ics" - "Work" - "White"))) -``` - +You could find documentation [here][http://nlamirault.github.io/scame] ## Support @@ -384,9 +55,6 @@ A changelog is available [here](ChangeLog.md). Nicolas Lamirault - - - [scame]: https://github.com/nlamirault/scame [badge-license]: https://img.shields.io/badge/license-GPL_2-green.svg?style=flat [LICENSE]: https://github.com/nlamirault/scame/blob/master/LICENSE From 4c3fbe8e4ad4c3e32db8f38136fd7d6dc9dba7a5 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 08:49:20 +0100 Subject: [PATCH 45/68] FIX doc link Signed-off-by: Nicolas Lamirault --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55aab94..d9d2dc1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ with [GNU Emacs][] 23 and below, or with other flavors of Emacs (e.g. XEmacs). The current version has been tested on Linux and Mac OS X. -You could find documentation [here][http://nlamirault.github.io/scame] +You could find documentation [here](http://nlamirault.github.io/scame) ## Support From 1cbc7f22885a90403f56b8775e9d31d302e8b250 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 09:13:30 +0100 Subject: [PATCH 46/68] FIX install scame before unit tests Signed-off-by: Nicolas Lamirault --- test/scame-version-test.el | 2 +- test/test-helper.el | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/scame-version-test.el b/test/scame-version-test.el index 1f208ec..4265f6d 100644 --- a/test/scame-version-test.el +++ b/test/scame-version-test.el @@ -1,6 +1,6 @@ ;;; scame-version-test.el --- Tests for Scame version information -;; Copyright (C) 2015 Nicolas Lamirault +;; Copyright (C) 2015, 2016 Nicolas Lamirault ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License diff --git a/test/test-helper.el b/test/test-helper.el index d0796e9..77335ff 100644 --- a/test/test-helper.el +++ b/test/test-helper.el @@ -1,6 +1,6 @@ ;;; test-helper.el --- Scame: Test helper -;; Copyright (C) 2014, 2015 Nicolas Lamirault +;; Copyright (C) 2014, 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -144,6 +144,7 @@ (scame-user-directory (concat scame-test/sandbox-path "/scame")) (user-emacs-directory scame-test/sandbox-path) ) + (install-scame) (setup-scame scame-test/sandbox-path) (setup-scame-test) (load-library "scame/scame.el") From 8601e5f95803f91a392520a00c26b9a00f7bc5ef Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 09:28:13 +0100 Subject: [PATCH 47/68] FIX doc link Signed-off-by: Nicolas Lamirault --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d9d2dc1..06af829 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ with [GNU Emacs][] 23 and below, or with other flavors of Emacs (e.g. XEmacs). The current version has been tested on Linux and Mac OS X. -You could find documentation [here](http://nlamirault.github.io/scame) +You could find documentation [here](http://nlamirault.github.io/scame/scame.html) ## Support From ab52c1d87b19c79b7ca1df23497d9ccda3089fc1 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 25 Feb 2016 09:39:33 +0100 Subject: [PATCH 48/68] FIX melpa and elpa URLs Signed-off-by: Nicolas Lamirault --- Cask | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cask b/Cask index b1fd6ea..f3b04f2 100644 --- a/Cask +++ b/Cask @@ -15,8 +15,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . -(source "gnu" "http://elpa.gnu.org/packages/") -(source "melpa" "http://melpa.milkbox.net/packages/") +(source "melpa" "https://stable.melpa.org/packages/") +(source "gnu" "https://elpa.gnu.org/packages/") ;; Development (development From ff3344eed28519f6425c702a8208efd0f43b712a Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Fri, 26 Feb 2016 10:49:02 +0100 Subject: [PATCH 49/68] FIX CircleCI Emacs 24 as default Signed-off-by: Nicolas Lamirault --- circle.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index a2a00b7..4cb376f 100644 --- a/circle.yml +++ b/circle.yml @@ -5,10 +5,11 @@ machine: dependencies: pre: - sudo rm /etc/apt/sources.list.d/google-chrome.list - #- sudo add-apt-repository -y ppa:cassou/emacs + - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - - sudo apt-get install -qq emacs-snapshot emacs-snapshot-el + - sudo apt-get install -qq emacs24-nox emacs-snapshot emacs-snapshot-el + - sudo update-alternatives --set emacs /usr/bin/emacs24-nox - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From c07722b0f11bf58f37d39259188c60a714404a87 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 27 Feb 2016 08:37:16 +0100 Subject: [PATCH 50/68] FIX CircleCI build Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 4cb376f..ec35af0 100644 --- a/circle.yml +++ b/circle.yml @@ -8,7 +8,7 @@ dependencies: - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - - sudo apt-get install -qq emacs24-nox emacs-snapshot emacs-snapshot-el + - sudo apt-get install -qq emacs24-nox emacs-snapshot - sudo update-alternatives --set emacs /usr/bin/emacs24-nox - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: From a57909b51f7637a0087e4599e15f034b1da6c43a Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 27 Feb 2016 08:41:38 +0100 Subject: [PATCH 51/68] FIX CircleCI Migrate to Melpa Signed-off-by: Nicolas Lamirault --- Cask | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Cask b/Cask index f3b04f2..9856422 100644 --- a/Cask +++ b/Cask @@ -15,7 +15,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . -(source "melpa" "https://stable.melpa.org/packages/") +;; (source "melpa" "https://stable.melpa.org/packages/") +(source "melpa" "https://melpa.org/packages/") (source "gnu" "https://elpa.gnu.org/packages/") ;; Development From ef3097e8860179dd7c7c53f7b87eb603d6c8dc6d Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 27 Feb 2016 08:54:27 +0100 Subject: [PATCH 52/68] FIX CircleCI try evm Signed-off-by: Nicolas Lamirault --- circle.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index ec35af0..7e34f15 100644 --- a/circle.yml +++ b/circle.yml @@ -4,12 +4,19 @@ machine: dependencies: pre: + - sudo mkdir /usr/local/evm + - sudo chmod -R 777 /usr/local/evm + - curl -fsSkL https://raw.github.com/rejeep/evm/master/go | bash + - chmod +x ~/.evm/bin/evm + - ~/.evm/bin/evm install emacs-24.4-bin + - ~/.evm/bin/evm install emacs-24.5-bin - sudo rm /etc/apt/sources.list.d/google-chrome.list - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - sudo apt-get install -qq emacs24-nox emacs-snapshot - - sudo update-alternatives --set emacs /usr/bin/emacs24-nox + #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox + - sudo update-alternatives --set emacs /usr/local/evm/bin/emacs-24.4 - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From bb0f39043a7d759ce4371abfba662beca76d33aa Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 27 Feb 2016 08:57:27 +0100 Subject: [PATCH 53/68] FIX CircleCI try evm Signed-off-by: Nicolas Lamirault --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 7e34f15..135cb5a 100644 --- a/circle.yml +++ b/circle.yml @@ -16,8 +16,8 @@ dependencies: - sudo apt-get update -qq - sudo apt-get install -qq emacs24-nox emacs-snapshot #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox - - sudo update-alternatives --set emacs /usr/local/evm/bin/emacs-24.4 - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: + - ~/.evm/bin/evm use emacs-24.5-bin - PATH="${HOME}/.cask/bin:$PATH" make clean elpa install test From b29bcfaba3a1ba85ddaf6fbf8d1832981d9251f9 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Sat, 27 Feb 2016 09:01:06 +0100 Subject: [PATCH 54/68] FIX CircleCI try evm Signed-off-by: Nicolas Lamirault --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 135cb5a..b292375 100644 --- a/circle.yml +++ b/circle.yml @@ -16,6 +16,7 @@ dependencies: - sudo apt-get update -qq - sudo apt-get install -qq emacs24-nox emacs-snapshot #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox + - ~/.evm/bin/evm use emacs-24.5-bin - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From 5e565e23acf3542c46583503ae02064fff694ceb Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 29 Feb 2016 14:23:14 +0100 Subject: [PATCH 55/68] FIX CircleCI build Signed-off-by: Nicolas Lamirault --- circle.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/circle.yml b/circle.yml index b292375..d671ce7 100644 --- a/circle.yml +++ b/circle.yml @@ -4,19 +4,16 @@ machine: dependencies: pre: - - sudo mkdir /usr/local/evm - - sudo chmod -R 777 /usr/local/evm - - curl -fsSkL https://raw.github.com/rejeep/evm/master/go | bash - - chmod +x ~/.evm/bin/evm - - ~/.evm/bin/evm install emacs-24.4-bin - - ~/.evm/bin/evm install emacs-24.5-bin - sudo rm /etc/apt/sources.list.d/google-chrome.list - sudo add-apt-repository -y ppa:cassou/emacs - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - sudo apt-get update -qq - sudo apt-get install -qq emacs24-nox emacs-snapshot #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox - - ~/.evm/bin/evm use emacs-24.5-bin + - export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" + - git clone https://github.com/rejeep/evm.git $HOME/.evm + - evm config path /tmp + - evm install emacs-24.5 --use --skip - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From 4e6d3c444d1c5d7fd4f3b698d587316c2dff40ac Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 29 Feb 2016 14:31:56 +0100 Subject: [PATCH 56/68] FIX CircleCI build Signed-off-by: Nicolas Lamirault --- circle.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index d671ce7..d14be13 100644 --- a/circle.yml +++ b/circle.yml @@ -12,10 +12,9 @@ dependencies: #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox - export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" - git clone https://github.com/rejeep/evm.git $HOME/.evm - - evm config path /tmp - - evm install emacs-24.5 --use --skip + - $HOME/.evm/bin/evm config path /tmp + - $HOME/.evm/bin/evm install emacs-24.5 --use --skip - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: - - ~/.evm/bin/evm use emacs-24.5-bin - PATH="${HOME}/.cask/bin:$PATH" make clean elpa install test From be819ee8bb9380f20974af696938ec63f62f6760 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 29 Feb 2016 14:48:46 +0100 Subject: [PATCH 57/68] FIX CircleCI build Signed-off-by: Nicolas Lamirault --- circle.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/circle.yml b/circle.yml index d14be13..83943e2 100644 --- a/circle.yml +++ b/circle.yml @@ -4,11 +4,11 @@ machine: dependencies: pre: - - sudo rm /etc/apt/sources.list.d/google-chrome.list - - sudo add-apt-repository -y ppa:cassou/emacs - - sudo add-apt-repository -y ppa:ubuntu-elisp/ppa - - sudo apt-get update -qq - - sudo apt-get install -qq emacs24-nox emacs-snapshot + #- sudo rm /etc/apt/sources.list.d/google-chrome.list + #- sudo add-apt-repository -y ppa:cassou/emacs + #- sudo add-apt-repository -y ppa:ubuntu-elisp/ppa + #- sudo apt-get update -qq + #- sudo apt-get install -qq emacs24-nox emacs-snapshot #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox - export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" - git clone https://github.com/rejeep/evm.git $HOME/.evm From 05ee38e13792016f14de25f475a602fe9905d9a8 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 1 Mar 2016 14:59:51 +0100 Subject: [PATCH 58/68] FIX Gnus gmail setup Signed-off-by: Nicolas Lamirault --- src/scame/gnus/gnus-gmail.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scame/gnus/gnus-gmail.el b/src/scame/gnus/gnus-gmail.el index b5e41c6..1f7abf0 100644 --- a/src/scame/gnus/gnus-gmail.el +++ b/src/scame/gnus/gnus-gmail.el @@ -82,7 +82,7 @@ ;; (local-set-key "x" 'gmail-delete) ;; (local-set-key "$" 'gmail-report-spam)) -(add-hook 'gnus-summary-mode-hook 'gmail-summary-keys) +;; (add-hook 'gnus-summary-mode-hook 'gmail-summary-keys) (define-key gnus-summary-mode-map (kbd "B d") From fb2bd595ce445f46790f78412a4911316306b4e5 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Tue, 1 Mar 2016 15:00:06 +0100 Subject: [PATCH 59/68] Update init.el custom settings Signed-off-by: Nicolas Lamirault --- src/init.el | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/init.el b/src/init.el index 47e3943..886673f 100644 --- a/src/init.el +++ b/src/init.el @@ -19,6 +19,28 @@ ;;; Code: +;; Added by Package.el. This must come before configurations of +;; installed packages. Don't delete this line. If you don't want it, +;; just comment it out by adding a semicolon to the start of the line. +;; You may delete these explanatory comments. +(package-initialize) + +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) + +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ;; Ex: + ;; '(default ((t (:family "Hack" :foundry "unknown" :slant normal :weight normal :height 113 :width normal)))) + ) + (mapc (lambda (path) (add-to-list 'load-path (concat user-emacs-directory path))) '("scame/" "scame/gnus")) From a8125a96035452bedb0552c5ee469d64f28f371f Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 3 Mar 2016 11:19:49 +0100 Subject: [PATCH 60/68] Update documentation Signed-off-by: Nicolas Lamirault --- doc/changelog.adoc | 169 ------------------------------------------- doc/description.adoc | 5 +- doc/scame.adoc | 27 ++++--- 3 files changed, 16 insertions(+), 185 deletions(-) delete mode 100644 doc/changelog.adoc diff --git a/doc/changelog.adoc b/doc/changelog.adoc deleted file mode 100644 index 1100759..0000000 --- a/doc/changelog.adoc +++ /dev/null @@ -1,169 +0,0 @@ -<<< -== Changelog - -=== 1.3.0 (10/14/2015) - -* Setup CircleCI continuous integration -* FIX OCaml configuration -* Setup rust development environment -* Update modeline - -=== 1.2.0 (07/30/2015) - -* Remove Cask dependency -* `#49` : Add a feature to load only some modules -* Add ranger -* Replace guide-key with which-key -* `#50` : Error with helm-find-files -* Add py-yapf for Python - -=== 1.1.0 (07/09/2015) - -* Add fishshell mode -* Add asciidoc mode -* `#45` : Error with appoitment -* Update keybindings using Hydra -* `#47` : Choice of completion backend - -=== 1.0.0 (04/03/2015) - -* Update org-mode and setup appointment -* Add ace-window -* Add swiper -* Remove ido and reconfigure helm -* Update smart-mode-line -* Update notifications system (sauron) -* Refactoring gnus and IMAP on localhost -* FIX Load libraries from vendoring directory -* Add Lua support -* Add engine-mode for search providers -* Setup irony for c, c++ and objective-c -* `#41`: Change init-loader to el-init - -=== 0.13.0 (03/02/2015) - -* Setup helm-mt to manage multi terminals -* Setup calendars using calfw (ics, Org, ...) -* Add week numbers in calendar -* Init specify packages version in Cask file -* Add hydra to manage key bindings - -=== 0.12.0 (01/20/2015) - -* Setup visible bell -* FIX Docker image creation -* Replace w3m rendering by shr in Gnus -* `#30` : Remove w3m (due to Cask-270) -* Remove Emacs 24.3 support -* Add helm-occur - -=== 0.11.0 (01/06/2015) - -* Init Scame archive for stable release -* Split unit tests -* FIX Common Lisp setup -* FIX Cloud tools setup -* FIX ERC setup -* Refactoring unit tests for using Overseer -* `#36` : Add vendoring directory -* Add twitterring-mode -* Setup bug-reference-mode - -=== 0.10.0 (12/22/2014) - -* `#35`: Warning after installation with invalid 'load-path' -* Update TravisCI configuration -* Setup music and radio using EMMS -* Init continuous integration watcher using Butler for Jenkins -* Update dired configuration - -=== 0.9.0 (10/24/2014) - -* Update Javascript configuration -* Refactoring php-mode and web-mode -* Init configuration for Elixir -* `#22`: Add discover-my-major -* `#32`: Add go-errcheck package -* `#31`: Add golint package -* Update GPG And Gnus setup -* Update Linux configuration for offlineimap -* Update IRC and IM configurations -* `#24`: Add the platinum searcher -* FIX cider setup -* Add pip-requirements package - -=== 0.8.0 (09/11/2014) - -* Update Common Lisp environment -* Update TravisCI setup -* FIX Remove Emacs 23 support -* Configure BBDB -* Add Gnus configuration -* Add neotree package - -=== 0.7.0 (07/15/2014) - -* Add Docker container to launch unit tests -* FIX unit tests -* Due to Emacs 24.4 required, remove some modules. -* FIX Anaconda configuration -* Change Smex keybindings -* FIX golang configuration -* FIX Remove password manager due website down -* Add Rust support - -=== 0.6.0 (06/17/2014) - -* Add toml-mode mode -* Add Dockerfile to publish a Scame image on the Docker registry -* Update Common lisp and go setup -* FIX Enable global-linum-mode -* FIX UTF-8 encodings -* `#18`: Add go-projectile -* `#13`: Refactor unit test to creates sandbox to test Scame installation and not use local installation -* Remove cerbere -* Update Python and Go configuration to use phpunit.el and gotest.el - -=== 0.5.0 (04/28/2014) - -* Migrate from MIT to GPL-3 -* `#16`: Add C and C++ configuration -* `#14`: Add sphinx-doc -* Add perspective for projectile -* `#12`: FIX Key bindings not enabled by default -* Add perspective.el -* Migrate to cerbere mode (gotest.el, phpunit.el, tox.el) -* `#11`: Add plsense-direx -* `#9`: Add jedi-direx -* `#8`: Add go-direx -* `#7`: Change Scame initialisation filename -* Add unit tests for Scame configuration - -=== 0.4.0 (04/15/2014) - -* `#6`: Update command argument doens't perform a git pull on scame local installation -* `#4`: Add uniquify configuration -* Add a command top open the Scame user customization file -* Refactoring Scame installation directory -* Migrating to a CLI in Emacs Lisp using commander.el -* `#3`: configure helm-projectile and key binding -* `#2`: configure helm-imenu and key binding -* Allow users to customize Scame default keymap prefix -* Uniform keybindings -* Migrate to use-package for packages configuration - -=== 0.3.0 (03/27/2014) - -* Add Cask installation -* Add EVM installation - -=== 0.2.0 (03/22/2014) - -* Customization in *$HOME/.config/scame/user.el* file -* Setup Drone.io build -* FIX Scame's installer - -=== 0.1.0 (03/20/2014) - -* Add installer -* Init project from https://github.com/nlamirault/divona[Divona] diff --git a/doc/description.adoc b/doc/description.adoc index a6c5b9a..5e28eac 100644 --- a/doc/description.adoc +++ b/doc/description.adoc @@ -1,6 +1,7 @@ == Description Scame is a "Starter Kit" for *Gnu Emacs* (>= 24). +Current version is {ScameVersion}. -NOTE: Last version of this documentation could be find on this website : -https://github.com/nlamirault/scame +NOTE: Development version of this documentation could be find on this website : +https://github.com/nlamirault/scame/tree/develop/doc diff --git a/doc/scame.adoc b/doc/scame.adoc index 4fcb172..13d8d55 100644 --- a/doc/scame.adoc +++ b/doc/scame.adoc @@ -1,8 +1,8 @@ = Scame Nicolas Lamirault v0.1.0 -:revnumber: 1.4.0 -:revdate: 02/24/2016 +:revnumber: 1.3.0 +:revdate: 03/03/2016 :description: Scame documentation :doctype: book // Settings: @@ -21,7 +21,7 @@ ifdef::backend-pdf[] :source-highlighter: coderay endif::[] - +:ScameVersion: 1.3.0 include::license.adoc[] @@ -36,9 +36,10 @@ Download the last version from Github and install it into the Emacs directory : [source,bash] ---- -$ wget https://github.com/nlamirault/scame/releases/download/1.0.0/scame-1.0.0.tar.gz -$ tar zxvf scame-1.0.0.tar.gz -$ cp -r scame-1.0.0/* ~/.emacs.d +$ wget https://github.com/nlamirault/scame/releases/download/x.y.z/scame-x.y.z.tar.gz +$ tar zxvf scame-x.y.z.tar.gz +$ rm -r ~/.emacs.d && mkdir -p ~/.emacs.d/scame +$ cp -r scame-x.y.z/* ~/.emacs.d ---- === From source @@ -50,7 +51,6 @@ You could clone the repository into the Emacs directory: $ rm -r ~/.emacs.d && mkdir -p ~/.emacs.d/scame $ git clone https://github.com/nlamirault/scame $ cp -r scame/src/* ~/.emacs.d/ -$ cd ~/.emacs.d && cask install ---- === Configuration @@ -123,10 +123,10 @@ NOTE: Scame provides a main menu : *C-c s SPC* Keybinding,Description C-down,Scroll line down C-up,Scroll line up -C-c,Select the window to the left of the current one -C-c,Select the window to the right of the current one -C-c,Select the window to the up of the current one -C-c,Select the window to the down of the current one +C-c left,Select the window to the left of the current one +C-c right,Select the window to the right of the current one +C-c up,Select the window to the up of the current one +C-c down,Select the window to the down of the current one |=================================== === Completion @@ -180,6 +180,7 @@ C-c p s w,projectile-persp-switch-project [options="header",cols="^,<"] |==================================== Keybinding,Description +C-x g h,launch menu for Go development C-x g r,go-remove-unused-imports C-x g i,go-goto-imports C-x g j,godef-jump @@ -196,6 +197,7 @@ C-c C-a,prompt you for an import path [options="header",cols="^,<"] |==================================== Keybinding,Description +C-x y h,launch menu for Python development C-x y t,launch current unit test C-x y f,launch tests in current file C-c M-d,generate Sphinx documentation for current function @@ -402,6 +404,3 @@ private ics URI. ---- Then launch Scame main menu (*C-c s SPC*), and choose Google (with *g*) - - -include::changelog.adoc[] From 9620b966601b154a7a1b838b54a9acef2cec803c Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Thu, 3 Mar 2016 17:27:52 +0100 Subject: [PATCH 61/68] Add icalendar to Gnus Signed-off-by: Nicolas Lamirault --- src/scame/gnus/scame-gnus-tools.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scame/gnus/scame-gnus-tools.el b/src/scame/gnus/scame-gnus-tools.el index d3d9b6d..359119f 100644 --- a/src/scame/gnus/scame-gnus-tools.el +++ b/src/scame/gnus/scame-gnus-tools.el @@ -1,6 +1,6 @@ ;;; scame-gnus-tools.el --- Some tools for Gnus -;; Copyright (C) 2015 Nicolas Lamirault +;; Copyright (C) 2015, 2016 Nicolas Lamirault ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -21,6 +21,11 @@ (use-package gnus-summary-ext) +(require 'gnus-icalendar) +(gnus-icalendar-setup) +(setq gnus-icalendar-org-capture-file "~/Org/calendar.org") +(setq gnus-icalendar-org-capture-headline '("Calendar")) +(gnus-icalendar-org-setup) (provide 'scame-gnus-tools) ;;; scame-gnus-tools.el ends here From 98c2bfe08d26014b4c5a569c9b6136e8a4c09734 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 16:38:18 +0100 Subject: [PATCH 62/68] Refactoring Makefile Signed-off-by: Nicolas Lamirault --- Makefile | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 946f495..5bd8434 100644 --- a/Makefile +++ b/Makefile @@ -41,23 +41,16 @@ OK_COLOR=\033[32;01m ERROR_COLOR=\033[31;01m WARN_COLOR=\033[33;01m -all: help +MAKE_COLOR=\033[33;01m%-20s\033[0m +.DEFAULT_GOAL := help + +.PHONY: help help: - @echo -e "$(OK_COLOR)==== $(APP) [$(VERSION)] ====$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- clean$(NO_COLOR) : clean Scame installation$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- install$(NO_COLOR) : Install Scame dependencies$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- test$(NO_COLOR) : launch unit tests$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- deps$(NO_COLOR) : check dependencies$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- release$(NO_COLOR) : make a new release$(NO_COLOR)" - - @echo -e "$(WARN_COLOR)- reset$(NO_COLOR) : remote Scame dependencies for development$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- docker-build$(NO_COLOR) : build the Docker image$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- docker-clean$(NO_COLOR) : remove the Docker image$(NO_COLOR)" - @echo -e "$(WARN_COLOR)- docker-run$(NO_COLOR) : launch Emacs using Scame docker image$(NO_COLOR)" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "$(MAKE_COLOR) : %s\n", $$1, $$2}' .PHONY: clean -clean: +clean: ## clean Scame installation @$(CASK) clean-elc @rm -fr dist $(ARCHIVE).gz test/sandboxorg-clock-save.el test/sandbox @@ -77,14 +70,14 @@ deps: @$(CASK) --path src outdated .PHONY: install -install: clean +install: clean ## Install Scame dependencies $(CASK) exec $(EMACS) -Q --batch -L . -L test \ --eval "(progn (require 'test-helper) (install-scame))" $(CASK) exec $(EMACS) -Q --batch -L . -L test -L test/sandbox/scame \ --eval "(progn (require 'test-helper) (cleanup-load-path) (setup-scame-test) (require 'scame))" .PHONY: test -test: elpa +test: elpa ## Launch unit tests @echo -e "$(OK_COLOR)[$(APP)] Launch unit tests$(NO_COLOR)" @$(CASK) exec ert-runner -L test/sandbox From ca57ecd00ba6624b08769310d649082e75e0dcad Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 16:38:39 +0100 Subject: [PATCH 63/68] Add Arduino development configuration Signed-off-by: Nicolas Lamirault --- src/scame/packages/51_arduino.el | 33 ++++++++++++++++++++++++++++++++ src/scame/scame-custom.el | 6 ++++++ src/scame/scame-pkg.el | 4 ++++ 3 files changed, 43 insertions(+) create mode 100644 src/scame/packages/51_arduino.el diff --git a/src/scame/packages/51_arduino.el b/src/scame/packages/51_arduino.el new file mode 100644 index 0000000..bf47654 --- /dev/null +++ b/src/scame/packages/51_arduino.el @@ -0,0 +1,33 @@ +;; 51_arduino.el --- Arduino configuration + +;; Copyright (C) 2014, 2016 Nicolas Lamirault + +;; This program 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 . + +;;; Commentary: + +;;; Code: + +(when scame-iot + + (use-package arduino-mode + :mode (("\\.ino\\'" . arduino-mode))) + + ;; Test it + ;; (use-package company-arduino) + + ) + +(provide '51_arduino) +;;; 51_arduino.el ends here diff --git a/src/scame/scame-custom.el b/src/scame/scame-custom.el index 065d95d..cd2bbb4 100644 --- a/src/scame/scame-custom.el +++ b/src/scame/scame-custom.el @@ -197,6 +197,12 @@ It means use tools like: Vagrant, Puppet, ansible, ..." :group 'scame-dev :type 'boolean) +(defcustom scame-iot t + "Set if you want IOT tools. +It means: Arduino, RaspberryPI, ..." + :group 'scame-iot + :type 'boolean) + (defcustom scame-sysadmin t "Set if you want the sysadmin environment. It means use tools like: nginx, apache, syslog, ..." diff --git a/src/scame/scame-pkg.el b/src/scame/scame-pkg.el index f508885..bccde4b 100644 --- a/src/scame/scame-pkg.el +++ b/src/scame/scame-pkg.el @@ -291,6 +291,10 @@ (add-to-list 'unstable-packages 'ansible-doc t) (add-to-list 'unstable-packages 'terraform-mode t)) +(when scame-iot + (add-to-list 'unstable-packages 'arduino-mode t) + (add-to-list 'unstable-packages 'company-arduino t)) + (when scame-social (add-to-list 'unstable-packages 'twittering-mode t) (add-to-list 'unstable-packages 'sx t)) From 2c6fe79b015e17ec9f5e585b872d0cd7fcd196c2 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 16:54:47 +0100 Subject: [PATCH 64/68] Update changelog Signed-off-by: Nicolas Lamirault --- ChangeLog.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index eca28ab..95fd1bd 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,19 @@ # Scame ChangeLog +## Version 1.4.0 + +- Setup Arduino development +- Update documentation +- Remove *rustfmt* package (now in *rust-mode*) +- Add *spaceline* for modeline +- Improve UI using *mode-icons* +- Update OCmaml configuration and dependencies +- ``FIX`` CircleCI configuration +- Update Gnus configuration for GMail +- Add *hydra* for golang and python +- ``FIX`` Haskell configuration +- ``FIX`` projectile completion backends + ## Version 1.3.0 (10/14/2015) - Setup CircleCI continuous integration From dd9ab810467895bdfe1563470730aaed09e1955c Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 17:00:47 +0100 Subject: [PATCH 65/68] Update ignore files Signed-off-by: Nicolas Lamirault --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 750a645..f336c91 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ elpa .projectile *.elc test/sandbox/ + +doc/scame.html +doc/scame.pdf +doc/scame.epub \ No newline at end of file From 7bb465c97a9f08805dabcffbdfd4746251c8328f Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 17:03:00 +0100 Subject: [PATCH 66/68] FIX CircleCI emacs installation Signed-off-by: Nicolas Lamirault --- circle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index 83943e2..ac19a1d 100644 --- a/circle.yml +++ b/circle.yml @@ -10,10 +10,10 @@ dependencies: #- sudo apt-get update -qq #- sudo apt-get install -qq emacs24-nox emacs-snapshot #- sudo update-alternatives --set emacs /usr/bin/emacs24-nox - - export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" - - git clone https://github.com/rejeep/evm.git $HOME/.evm - - $HOME/.evm/bin/evm config path /tmp - - $HOME/.evm/bin/evm install emacs-24.5 --use --skip + #- export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH" + #- git clone https://github.com/rejeep/evm.git $HOME/.evm + #- $HOME/.evm/bin/evm config path /tmp + #- $HOME/.evm/bin/evm install emacs-24.5 --use --skip - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From 87efc895e92fd51b8b7f79e47771fdf28ed1493b Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 17:11:50 +0100 Subject: [PATCH 67/68] FIX CircleCI Install Emacs24.4 Signed-off-by: Nicolas Lamirault --- circle.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/circle.yml b/circle.yml index ac19a1d..d03a115 100644 --- a/circle.yml +++ b/circle.yml @@ -14,6 +14,9 @@ dependencies: #- git clone https://github.com/rejeep/evm.git $HOME/.evm #- $HOME/.evm/bin/evm config path /tmp #- $HOME/.evm/bin/evm install emacs-24.5 --use --skip + - sudo add-apt-repository -y ppa:adrozdoff/emacs + - sudo apt-get update -qq + - sudo apt-get install -qq emacs24 - curl -fsSkL "https://raw.github.com/cask/cask/master/go" | python test: override: From d32d2b104ca44c624c9eeac028a9f471a1733740 Mon Sep 17 00:00:00 2001 From: Nicolas Lamirault Date: Mon, 7 Mar 2016 17:16:46 +0100 Subject: [PATCH 68/68] Update Makefile Signed-off-by: Nicolas Lamirault --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 5bd8434..bbccbb0 100644 --- a/Makefile +++ b/Makefile @@ -47,6 +47,7 @@ MAKE_COLOR=\033[33;01m%-20s\033[0m .PHONY: help help: + @echo -e "$(OK_COLOR)==== $(APP) [$(VERSION)] ====$(NO_COLOR)" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "$(MAKE_COLOR) : %s\n", $$1, $$2}' .PHONY: clean