Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
159 lines (132 sloc) 4.67 KB
;;; emacs-rc-projectile.el --- Projectile configuration
;; Copyright (C) 2017 Andreas Marschke
;; Author: <emacs@andreas-marschke.name>
;; Created: 03.05.2017
;; Version: 0.1
;; Package-Requires: (())
;; Keywords:
;; URL:
;;; Commentary:
;;
;;
;;; Code:
(defvar flx-ido-mode t)
(defvar projectile-completion-system 'ido)
(projectile-global-mode)
(defun soasta-mode ()
"SOASTA style indentation and coding style."
(interactive)
(defvar current-fill-column 240)
(setq indent-tabs-mode nil)
(setq tab-width 2)
(setq js2-basic-offset 2)
(setq hs-minor-mode t)
(setq auto-fill-mode nil)
(setq c-basic-offset '(. 2))
(setq c-offsets-alist
'(quote
(inline-open . +)
(inline-close . 0)
(member-init-intro . +)
(substatement-open . +)
(statement-block-intro . +)
(func-decl-cont . 0)
(topmost-intro . +)
(inline-open . 0)
(block-open . +)
(defun-block-intro . +)
))
(c-toggle-auto-hungry-state 2)
(c-toggle-auto-newline nil)
)
(defun soasta-js-mode ()
"SOASTA Javascript library configuration."
(interactive)
(defvar current-fill-column 240)
(setq indent-tabs-mode nil)
(setq tab-width 2)
(setq js2-basic-offset 4)
(setq hs-minor-mode t)
(setq auto-fill-mode nil)
(setq c-basic-offset '(. 2))
(setq c-offsets-alist
'(quote
(member-init-intro . +)
(substatement-open . +)
(statement-block-intro . +)
(func-decl-cont . 0)
(topmost-intro . +)
(inline-open . 0)
(block-open . +)
))
(c-toggle-auto-hungry-state 2)
)
(defun boomerang-mode ()
"Boomerang.js indentation and coding style definition."
(interactive)
(defvar current-fill-column 240)
(setq indent-tabs-mode t)
(setq tab-width 4)
(defvar hs-minor-mode t)
(defvar auto-fill-mode nil)
(defvar js2-basic-offset 4)
(defvar js2-bounce-indent-p t)
(defvar c-basic-offset '(. 4))
(defvar c-set-offset '(member-init-intro '++))
(c-set-offset 'substatement-open 0)
(c-set-offset 'block-open '0)
(c-toggle-auto-hungry-state 0)
)
(projectile-register-project-type 'boomerang '("boomerang.js")
:compile "grunt --no-color lint"
:test "grunt --no-color lint"
:run "grunt --no-color test:debug")
(projectile-register-project-type 'boomerang-android '("mpulse-android")
:compile "./gradlew clean build -Pbuildnumber=1-x"
:test "./gradlew clean build test -Pbuildnumber=1-x"
:run "./gradlew clean build test -Pbuildnumber=1-x")
(projectile-register-project-type 'mpulse-java '("test-app")
:compile "./gradlew clean build -Pbuildnumber=1-x"
:test "./gradlew clean build test -Pbuildnumber=1-x"
:run "./gradlew clean build test -Pbuildnumber=1-x")
(defun flycheck-checker-javascript-eslint-find-binary-hook ()
"Simple method for setting correct eslint version."
(if (ignore-errors (projectile-project-p))
(when (eq 'boomerang (projectile-project-type))
;;(message (concat "Found Boomerang project setting eslint executable to: " (concat (projectile-project-root) "node_modules/.bin/eslint")))
(flycheck-set-checker-executable (concat (projectile-project-root) "node_modules/.bin/eslint"))))
)
(defun cc-mode-indentation-mode-hook()
(if (ignore-errors (projectile-project-p))
(cond ((eq 'boomerang (ignore-errors (projectile-project-type)))
(boomerang-mode))
((eq 'soasta (ignore-errors (projectile-project-type)))
(soasta-mode))
((eq 'mpulse-java (ignore-errors (projectile-project-type)))
(soasta-mode))
((eq 'boomerang-android (ignore-errors (projectile-project-type)))
(soasta-mode))
))
)
(add-hook 'projectile-after-switch-project-hook 'flycheck-checker-javascript-eslint-find-binary-hook)
(add-hook 'projectile-find-file-hook 'flycheck-checker-javascript-eslint-find-binary-hook)
(add-hook 'projectile-find-dir-hook 'flycheck-checker-javascript-eslint-find-binary-hook)
(add-hook 'find-file-hook 'flycheck-checker-javascript-eslint-find-binary-hook)
(add-hook 'web-mode-hook 'cc-mode-indentation-mode-hook)
(add-hook 'js2-mode-hook 'cc-mode-indentation-mode-hook)
(add-hook 'java-mode-hook 'cc-mode-indentation-mode-hook)
;;; Projectile keybindings for NeoTree
(defun neotree-project-dir ()
"Open NeoTree using the git root."
(interactive)
(let ((project-dir (projectile-project-root))
(file-name (buffer-file-name)))
(neotree-toggle)
(if project-dir
(if (neo-global--window-exists-p)
(progn
(neotree-dir project-dir)
(neotree-find file-name)))
(message "Could not find git project root."))))
(global-set-key [f8] 'neotree-project-dir)
;;; emacs-rc-projectile.el ends here