(eval-when-compile (require 'use-package)) (use-package bookmark :custom (bookmark-default-file fcuny-bookmarks-dir) (bookmark-save-flag 1)) (use-package autorevert :config (global-auto-revert-mode t)) (use-package midnight :config (midnight-mode t)) (use-package autorevert :config (setq global-auto-revert-non-file-buffers t) (setq auto-revert-verbose nil) (global-auto-revert-mode t)) (use-package recentf :config (setq recentf-save-file (expand-file-name "var/recentf" user-emacs-directory))) (use-package server :if window-system :init (add-hook 'after-init-hook 'server-start)) (use-package hl-line :config (global-hl-line-mode t)) (use-package tramp :custom (tramp-default-method "ssh") (tramp-persistency-file-name (expand-file-name "var/tramp" user-emacs-directory))) (use-package whitespace :custom (whitespace-style '(face trailing)) (show-trailing-whitespace t) :hook (whitespace-mode)) (use-package counsel :ensure t :bind (("M-x" . counsel-M-x) ("C-s" . counsel-grep-or-swiper) ("C-x C-f" . counsel-find-file) ("C-x C-r" . counsel-recentf) ("C-c f" . counsel-git) ("C-c s" . counsel-git-grep) ("C-c /" . counsel-ag)) :custom (counsel-find-file-at-point t) :config (use-package swiper :ensure t) (use-package counsel-projectile :ensure t)) (use-package ivy :ensure t :diminish (ivy-mode . "") :bind ("C-c m" . ivy-switch-project) :config (ivy-mode 1) (setq ivy-use-virtual-buffers t ivy-height 10 ivy-count-format "(%d/%d) " ivy-initial-inputs-alist nil ivy-use-ignore-default 'always ivy-ignore-buffers '("company-statistics-cache.el" "company-statistics-autoload.el") ivy-re-builders-alist '((swiper . ivy--regex-ignore-order) (t . ivy--regex-fuzzy) (t . ivy--regex-ignore-order))) (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)) (ivy-set-actions 'ivy-switch-project '(("d" dired "Open Dired in project's directory") ("v" counsel-projectile "Open project root in vc-dir or magit") ("c" projectile-compile-project "Compile project") ("r" projectile-remove-known-project "Remove project(s)")))) (use-package projectile :ensure t :diminish projectile-mode :bind-keymap ("C-c p" . projectile-command-map) :init (add-hook 'after-init-hook #'projectile-mode) :config (setq projectile-switch-project-action 'projectile-dired projectile-enable-caching t projectile-completion-system 'ivy projectile-known-projects-file (expand-file-name "var/projectile-bookmarks.eld" user-emacs-directory) projectile-cache-file (expand-file-name "var/projectile.cache" user-emacs-directory) projectile-globally-ignored-directories (append fcuny-projects-ignored-dirs projectile-globally-ignored-directories) projectile-globally-ignored-files (append projectile-globally-ignored-files))) (use-package ag :ensure t :bind (:map ag-mode-map ("p" . compilation-previous-error) ("n" . compilation-next-error) ("N" . compilation-next-file) ("P" . compilation-previous-file)) :custom (ag-highlight-search t) (ag-reuse-buffers t) (ag-reuse-window t)) (use-package dired :defer t :bind ("C-x C-d" . dired) :init (setq-default dired-dwim-target t) (setq dired-recursive-deletes 'always) (setq dired-recursive-copies 'always) (let ((gls (executable-find "/opt/twitter/bin/gls"))) (when gls (setq insert-directory-program gls)))) (use-package ibuffer :ensure t :bind ("C-x C-b" . ibuffer)) (use-package flycheck :ensure t :config (progn (add-hook 'prog-mode-hook 'flycheck-mode) (setq flycheck-highlighting-mode 'lines) (setq flycheck-check-syntax-automatically '(mode-enabled save)) (setq flycheck-checkers (delq 'emacs-lisp-checkdoc flycheck-checkers)) (if (fc/check-work-machine-p) (flycheck-define-checker fc/twitter-source-check "A syntax checker for python source code in Source, using `check.pex'" :command ("check.pex" source) :error-patterns ((error line-start (id (1+ nonl)) ":ERROR" (1+ nonl) ":" line (message) line-end) (warning line-start (id (1+ nonl)) ":WARNING" (1+ nonl) ":" line (message) line-end)) :predicate fc/check-source-p :modes (python-mode)) (add-to-list 'flycheck-checkers 'fc/twitter-source-check)))) (provide 'fcuny-editor)