<commit_before>;;; tools/neotree/config.el -*- lexical-binding: t; -*-

(def-package! neotree
  :commands (neotree-show
             neotree-hide
             neotree-toggle
             neotree-dir
             neotree-find
             neo-global--with-buffer
             neo-global--window-exists-p)
  :config
  (setq neo-create-file-auto-open nil
        neo-auto-indent-point nil
        neo-autorefresh nil
        neo-mode-line-type 'none
        neo-window-width 28
        neo-show-updir-line nil
        neo-theme 'nerd ; fallback
        neo-banner-message nil
        neo-confirm-create-file #'off-p
        neo-confirm-create-directory #'off-p
        neo-show-hidden-files nil
        neo-keymap-style 'concise
        neo-hidden-regexp-list
        '(;; vcs folders
          "^\\.\\(git\\|hg\\|svn\\)$"
          ;; compiled files
          "\\.\\(pyc\\|o\\|elc\\|lock\\|css.map\\)$"
          ;; generated files, caches or local pkgs
          "^\\(node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$"
          ;; org-mode folders
          "^\\.\\(sync\\|export\\|attach\\)$"
          "~$"
          "^#.*#$"))

  (set! :popup "^ ?\\*NeoTree"
    `((side . ,neo-window-position) (size . ,neo-window-width))
    '((quit . current) (select . t)))

  (when (bound-and-true-p winner-mode)
    (push neo-buffer-name winner-boring-buffers)))
<commit_msg>tools/neotree: keep cursor at beginning-of-text, not bol<commit_after>;;; tools/neotree/config.el -*- lexical-binding: t; -*-

(def-package! neotree
  :commands (neotree-show
             neotree-hide
             neotree-toggle
             neotree-dir
             neotree-find
             neo-global--with-buffer
             neo-global--window-exists-p)
  :config
  (setq neo-create-file-auto-open nil
        neo-auto-indent-point nil
        neo-autorefresh nil
        neo-mode-line-type 'none
        neo-window-width 28
        neo-show-updir-line nil
        neo-theme 'nerd ; fallback
        neo-banner-message nil
        neo-confirm-create-file #'off-p
        neo-confirm-create-directory #'off-p
        neo-show-hidden-files nil
        neo-keymap-style 'concise
        neo-hidden-regexp-list
        '(;; vcs folders
          "^\\.\\(git\\|hg\\|svn\\)$"
          ;; compiled files
          "\\.\\(pyc\\|o\\|elc\\|lock\\|css.map\\)$"
          ;; generated files, caches or local pkgs
          "^\\(node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$"
          ;; org-mode folders
          "^\\.\\(sync\\|export\\|attach\\)$"
          "~$"
          "^#.*#$"))

  (set! :popup "^ ?\\*NeoTree"
    `((side . ,neo-window-position) (size . ,neo-window-width))
    '((quit . current) (select . t)))

  (when (bound-and-true-p winner-mode)
    (push neo-buffer-name winner-boring-buffers))

  ;; The cursor always sits at bol. `+neotree*fix-cursor' and
  ;; `+neotree*indent-cursor' change that behavior, so that the cursor is always
  ;; on the first non-blank character on the line, in the neo buffer.
  (defun +neotree*fix-cursor (&rest _)
    (with-current-buffer neo-global--buffer
      (+neotree*indent-cursor)))
  (add-hook 'neo-enter-hook #'+neotree*fix-cursor)

  (defun +neotree*indent-cursor (&rest _)
    (beginning-of-line)
    (skip-chars-forward " \t\r"))
  (advice-add #'neotree-next-line :after #'+neotree*indent-cursor)
  (advice-add #'neotree-previous-line :after #'+neotree*indent-cursor))

{'fraction_non_alphanumeric': 0.17814588782330718, 'fraction_numerical': 0.0011624527753560012, 'mean_word_length': 1.916949152542373, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7197640', 'n_tokens_mistral': 1257, 'n_tokens_neox': 1183, 'n_words': 209}