;*- lexical-binding: t; -*- (add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) (when (eq system-type 'darwin) (setq ns-command-modifier 'control) (setq mac-command-modifier 'control)) (setq inhibit-startup-message t) (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) (blink-cursor-mode -1) (setq-default cursor-type 'box) (line-number-mode 1) (column-number-mode 1) (setq global-hl-line-sticky-flag t) (global-hl-line-mode 1) (setq-default tab-width 4) (setq-default indent-tabs-mode nil) (setq-default c-basic-offset 4) (setq select-enable-clipboard t) (setq ring-bell-function 'ignore) (global-auto-revert-mode 1) (setq grep-command "rg -nH --no-heading -S " grep-use-null-device nil) (when (eq system-type 'windows-nt) (let ((git-find-path (w32-short-file-name "C:/Program Files/Git/usr/bin/"))) (setq find-program (concat git-find-path "find.exe")) (add-to-list 'exec-path git-find-path))) (add-to-list 'initial-frame-alist '(fullscreen . maximized)) (let* ((attrs (frame-monitor-attributes)) (width (nth 3 (assq 'geometry attrs))) (mm-w (nth 1 (assq 'mm-size attrs))) (font (cond ((find-font (font-spec :family "Inconsolata")) "Inconsolata") ((find-font (font-spec :family "Consolas")) "Consolas") ((find-font (font-spec :family "Menlo")) "Menlo") (t "monospace"))) (size (if (or (>= width 3440) (and mm-w (> mm-w 100) (< mm-w 400))) 14.0 10.0))) (set-face-attribute 'default nil :font (font-spec :family font :size size))) (setq make-backup-files nil) (setq auto-save-default nil) (setq create-lockfiles nil) (setq undo-limit 20000000) (setq undo-strong-limit 40000000) (setq compilation-scroll-output t) (setq scroll-conservatively 101 scroll-step 1 scroll-margin 30) (require 'my-ido) ;; (require 'my-jump-window) (require 'my-compile) (require 'my-treesitter) (require 'my-cpp) (require 'my-java) (require 'my-lua) (require 'my-powershell) (require 'dired) (if (eq system-type 'windows-nt) (progn (setq ls-lisp-use-insert-directory-program nil) (require 'ls-lisp) (setq dired-listing-switches "-la --group-directories-first")) (setq dired-listing-switches "-agho --group-directories-first")) (defun smart-home () (interactive) (let ((oldpos (point))) (back-to-indentation) (and (= oldpos (point)) (beginning-of-line)))) (global-set-key (kbd "C-a") 'smart-home) (defun smart-comment (&optional arg) (interactive "*P") (cond ((use-region-p) (comment-or-uncomment-region (region-beginning) (region-end))) ((looking-at-p "[[:space:]]*$") (comment-dwim arg)) (t (comment-or-uncomment-region (line-beginning-position) (line-end-position)) (forward-line 1)))) (global-set-key (kbd "M-;") #'smart-comment) (dolist (modifier '("" "M-" "C-" "S-" "C-M-")) (dolist (key '("" "" "" "")) (global-set-key (kbd (concat modifier key)) 'undefined))) (global-set-key (kbd "C-") 'undefined) (global-set-key (kbd "C-z") 'undefined) (global-set-key (kbd "C-x C-z") 'undefined) (global-set-key (kbd "C-x C-c") 'undefined) (require 'server) (unless (server-running-p) (server-start)) (split-window-horizontally) (add-to-list 'custom-theme-load-path (expand-file-name "themes" user-emacs-directory)) (setq custom-safe-themes t) (load-theme 'my t) (defun my-find-file-same-window (original-function &rest arguments) (let ((display-buffer-overriding-action '(display-buffer-same-window (inhibit-same-window . nil)))) (apply original-function arguments))) (advice-add 'find-file :around #'my-find-file-same-window) (setq display-buffer-alist '((".*" (display-buffer-reuse-window display-buffer-use-some-window display-buffer-pop-up-window) (inhibit-same-window . t)))) ;; (defun my-display-file-command-p (_buffer _action) ;; (memq this-command '(find-file project-find-file))) ;; (setq switch-to-buffer-obey-display-actions t) ;; (setq display-buffer-alist ;; '((my-display-file-command-p ;; display-buffer-same-window) ;; (".*" ;; (display-buffer-reuse-window ;; display-buffer-use-some-window ;; display-buffer-pop-up-window) ;; (inhibit-same-window . t)))) ;; (setq display-buffer-alist ;; '((".*" ;; (display-buffer-reuse-window ;; display-buffer-use-some-window ;; display-buffer-pop-up-window) ;; (inhibit-same-window . t)))) ;; (setq display-buffer-alist ;; '(((lambda (name action) ;; (member name '("*compilation*" "*Help*" "*Messages*" "*Warnings*"))) ;; (display-buffer-at-bottom) ;; (window-height . 15))))