   )
 
 (package! rotate-text
-  :quelpa (rotate-text :fetcher github :repo "debug-ito/rotate-text.el")
+  :quelpa (:fetcher github :repo "debug-ito/rotate-text.el")
   :commands (rotate-text rotate-text-backward)
   :config (push '("true" "false") rotate-text-words))
 


(package! emr
  :commands (emr-show-refactor-menu emr-declare-command)
  :config
  (emr-initialize)
  (define-key popup-menu-keymap [escape] 'keyboard-quit))

(package! expand-region :commands (er/expand-region er/contract-region er/mark-symbol er/mark-word))

;;; core-editor.el --- filling the editor shaped hole in the Emacs OS

(setq shift-select-mode t ; activate mark on shift-click
      ;; Save clipboard contents into kill-ring before replacing them
      save-interprogram-paste-before-kill t
      ;; Bookmarks
      bookmark-default-file (concat doom-cache-dir "/bookmarks")
      bookmark-save-flag t
      ;; Formatting
      delete-trailing-lines nil
      fill-column 80
      sentence-end-double-space nil
      ;; Scrolling
      hscroll-margin 1
      hscroll-step 1
      scroll-conservatively 1001
      scroll-margin 0
      scroll-preserve-screen-position t
      ;; Whitespace (see `editorconfig')
      indent-tabs-mode nil
      require-final-newline t
      tab-always-indent t
      tab-width 4
      tabify-regexp "^\t* [ \t]+"  ; for :retab
      whitespace-line-column fill-column
      whitespace-style
      '(face tabs tab-mark trailing lines-tail)
      whitespace-display-mappings
      '((tab-mark ?\t [?› ?\t]) (newline-mark 10  [36 10]))
      ;; Wrapping
      truncate-lines t
      truncate-partial-width-windows 50
      visual-fill-column-center-text nil
      word-wrap t
      ;; clipboard
      x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)
      ;; Use a shared clipboard
      select-enable-clipboard t
      select-enable-primary t)

(unless noninteractive
  ;; Save point across sessions
  (require 'saveplace)
  (setq save-place-file (concat doom-cache-dir "saveplace")
        save-place t)
  (when (>= emacs-major-version 25)
    (save-place-mode +1))

  ;; Save history across sessions
  (require 'savehist)
  (setq savehist-file (concat doom-cache-dir "savehist")
        savehist-save-minibuffer-history t
        savehist-additional-variables
        '(kill-ring search-ring regexp-search-ring))
  (savehist-mode 1)

  ;; Remove text-property cruft from history
  (defun unpropertize-savehist ()
    (mapc (lambda (list)
            (when (boundp list)
              (set list (mapcar 'substring-no-properties (eval list)))))
          '(kill-ring minibuffer-history helm-grep-history helm-ff-history
            file-name-history read-expression-history extended-command-history
            evil-ex-history)))
  (add-hook 'kill-emacs-hook    'unpropertize-savehist)
  (add-hook 'savehist-save-hook 'unpropertize-savehist)

  ;; Keep track of recently opened files
  (require 'recentf)
  (setq recentf-save-file (concat doom-cache-dir "recentf")
        recentf-exclude '("/tmp/" "/ssh:" "\\.?ido\\.last$" "\\.revive$" "/TAGS$"
                          "emacs\\.d/private/cache/.+" "emacs\\.d/workgroups/.+$"
                          "wg-default" "/company-statistics-cache.el$"
                          "^/var/folders/.+$" "^/tmp/.+")
        recentf-max-menu-items 0
        recentf-max-saved-items 250
        recentf-auto-cleanup 600
        recentf-filename-handlers '(abbreviate-file-name))
  (recentf-mode 1)

  ;; Ediff
  (add-hook! ediff-load
    (setq ediff-diff-options           "-w"
          ediff-split-window-function 'split-window-horizontally
          ediff-window-setup-function 'ediff-setup-windows-plain)) ; no extra frames

  ;; revert buffers for changed files
  (global-auto-revert-mode 1)
  (setq auto-revert-verbose nil))


;;
;; Core Plugins
;;

;; Handles whitespace (tabs/spaces) settings externally. This way projects can
;; specify their own formatting rules.
(package! editorconfig :demand t
  :mode ("\\.?editorconfig$" . editorconfig-conf-mode)
  :config (editorconfig-mode +1)
  ;; Show whitespace in tabs indentation mode
  (add-hook! 'editorconfig-custom-hooks
    (if indent-tabs-mode (whitespace-mode +1))))

;; Auto-close delimiters and blocks as you type
(package! smartparens :demand t
  :init
  (setq sp-autowrap-region nil          ; let evil-surround handle this
