From e489e29a4bd313b1e8b4ff8796d21f1e8128cdd2 Mon Sep 17 00:00:00 2001 From: diego Date: Thu, 13 Mar 2025 20:26:26 +0100 Subject: [PATCH] added required file lmao --- LICENSE | 19 ++-- config.org | 223 ++++++++++++++++++++-------------------------- init.el | 2 +- perltidy.el | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 361 insertions(+), 134 deletions(-) create mode 100644 perltidy.el diff --git a/LICENSE b/LICENSE index 73a6f5d..ff9e935 100644 --- a/LICENSE +++ b/LICENSE @@ -1,10 +1,13 @@ -KILL-9 PUBLIC LICENSE -Copyleft (ɔ) All Rights Reversed + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2004 Sam Hocevar -This WORK is hereby relinquished of all associated ownership, attribution and copy -rights, and redistribution or use of any kind, with or without modification, is -permitted without restriction subject to the following conditions: +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -1. Redistributions of this work must retain the entirety of this license - AND source code. -2. No further restrictions of ANY kind may be applied. + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/config.org b/config.org index 290224c..0ba77d1 100644 --- a/config.org +++ b/config.org @@ -73,6 +73,11 @@ C-c n for indent-buffer. I don't use the rest. (add-hook 'html-mode-hook (lambda () (set-fill-column 100))) + (add-hook 'markdown-mode-hook + (lambda () + (set-fill-column 75))) + + (defun indent-buffer () (interactive) (save-excursion @@ -89,7 +94,12 @@ it. I don't think i'd ever use the overwritten. (global-set-key (kbd "M-m") 'mark-whole-buffer) (global-set-key (kbd "C-c m") 'man) (define-key org-mode-map (kbd "C-c p") 'org-publish-current-file) +<<<<<<< HEAD + (set-frame-font "Monospace 12") +||||||| parent of 5575988 (no se ni que he hecho) (set-frame-font "Hack 17") +======= +>>>>>>> 5575988 (no se ni que he hecho) #+END_SRC * No idea @@ -143,7 +153,7 @@ Functions I wrote because emacs lisp is cool and useful. (setq org-publish-project-alist '(("suragu.net" :base-directory "~/docs/qorg_qorg/" - :publishing-directory "~/docs/mounts/sites/suragu.net" + :publishing-directory "~/docs/mounts/suragu" :section-numbers nil :publishing-function org-html-publish-to-html :table-of-contents nil @@ -183,7 +193,10 @@ Functions I wrote because emacs lisp is cool and useful. (setq cmd-str (concat prog-name " " file-name)) (shell-command cmd-str))) - + (defun sosa/repos () + (interactive) + (dired "/home/diego/Escritorio/zpool/repos/")) + (global-set-key (kbd "C-c r") 'sosa/repos) #+end_src * Programs Emacs customization, Here is where most of the configuration is. @@ -234,9 +247,7 @@ minibuffer. Flycheck is a syntax validator and lintern for programming. #+BEGIN_SRC emacs-lisp (use-package flycheck - :ensure t - :init - (add-hook 'after-init-hook #'global-flycheck-mode)) + :ensure t) #+END_SRC And for raku #+BEGIN_SRC emacs-lisp @@ -266,11 +277,26 @@ And to have multiple buffers #+END_SRC ** Theme #+begin_src emacs-lisp +<<<<<<< HEAD + (use-package "base16-theme" +||||||| parent of 5575988 (no se ni que he hecho) (use-package "exotica-theme" +======= + (use-package "zweilight-theme" +>>>>>>> 5575988 (no se ni que he hecho) :ensure t +<<<<<<< HEAD + :init(load-theme 'base16-black-metal-bathory t) + ) +||||||| parent of 5575988 (no se ni que he hecho) :init(load-theme 'exotica t) ) +======= + :init(load-theme 'zweilight t)) + (set-frame-font "Inconsolata 15") +>>>>>>> 5575988 (no se ni que he hecho) (set-cursor-color "purple") + #+end_src ** ctrlf So, you know, C-s in emacs sucks, so this is a repleacement for that. @@ -281,8 +307,6 @@ So, you know, C-s in emacs sucks, so this is a repleacement for that. :init (ctrlf-mode +1)) #+END_SRC -** Company and Irony -Some shit for autocompletion and that kind of shit. ** Programming language things *** Lisp @@ -304,8 +328,17 @@ I use LSP for perl. (setq perl-indent-level 5) (defalias 'perl-mode 'cperl-mode) (add-hook 'perl-mode-hook (lambda () +<<<<<<< HEAD (lsp) (irony-mode -1))) + (load-file "~/.config/emacs/perltidy.el") +||||||| parent of 5575988 (no se ni que he hecho) + (lsp) + (irony-mode -1))) +======= + (lsp))) + (load-file "~/.config/emacs/perltidy.el") +>>>>>>> 5575988 (no se ni que he hecho) #+END_SRC *** C* This use c-eldoc mode so it prints the function's prototype in the @@ -318,14 +351,13 @@ to. LSP is also used for further Programming. (add-hook 'c-mode-hook 'c-turn-on-eldoc-mode)) (setq c-default-style "k&r") (add-hook 'c-mode-hook (lambda () - (lsp) - (irony-mode -1))) + (lsp))) #+END_SRC *** Raku Raku, the cornerstone of any well designed programming language. #+begin_src emacs-lisp (setq raku-indent-offset 5) - (setq raku-exec-path "/usr/bin/raku") + (setq raku-exec-path "/home/diego/.local/bin/raku") #+end_src *** HTML & CSS offset #+begin_src emacs-lisp @@ -404,6 +436,10 @@ Now let's make the thing lysergic (set-face-foreground dired-mark-face "green") (set-face-foreground dired-marked-face "blue") #+end_src +Good sorting +#+begin_src emacs-lisp +(setq dired-listing-switches "-aBhl --group-directories-first") +#+end_src ** kill ring popup #+BEGIN_SRC emacs-lisp (use-package popup-kill-ring @@ -418,7 +454,6 @@ Scroll by lines rather than by pages. (setq scroll-step 1) (setq scroll-conservatively 10000) (setq auto-window-vscroll nil) - (scroll-bar-mode 1) #+end_src ** Shell #+begin_src emacs-lisp @@ -444,7 +479,7 @@ Multiple cursors :DD #+begin_src emacs-lisp (use-package "multiple-cursors" :ensure t - :bind ("C-c q" . 'mc/mark-next-like-this)) + :bind ("C-x q" . 'mc/mark-next-like-this)) #+end_src @@ -502,9 +537,6 @@ Le language server #+begin_src emacs-lisp (use-package "lsp-mode" :ensure t) - (use-package "lsp-ui" - :ensure t - :init(add-hook 'lsp-mode-hook 'lsp-ui-mode)) #+end_src ** Hooks I am tired of =M-x auto-fill-mode= in some modes @@ -544,7 +576,9 @@ thankfully there's this thing. (set-face-font 'org-level-1 "IBM Plex Mono 16") (set-face-font 'org-level-2 "IBM Plex Mono 15") (set-face-font 'org-level-3 "IBM Plex Mono 14") - + (set-face-font 'org-level-4 "IBM Plex Mono 14") + (set-face-font 'org-level-5 "IBM Plex Mono 14") + (setq org-hide-emphasis-markers t) #+end_src ** zzz-to-char It's like ace-whatever but for zapping characters. @@ -563,107 +597,6 @@ Better \*help\* buffer :bind ("C-h v". #'helpful-variable) :bind ("C-h k". #'helpful-key)) -#+end_src -** Treemacs -Sidebar xdxd -#+begin_src emacs-lisp - (use-package treemacs - :ensure t - :defer t - :init - (with-eval-after-load 'winum - (define-key winum-keymap (kbd "M-0") #'treemacs-select-window)) - :config - (progn - (setq treemacs-collapse-dirs (if treemacs-python-executable 3 0) - treemacs-deferred-git-apply-delay 0.5 - treemacs-directory-name-transformer #'identity - treemacs-display-in-side-window t - treemacs-eldoc-display 'simple - treemacs-file-event-delay 5000 - treemacs-file-extension-regex treemacs-last-period-regex-value - treemacs-file-follow-delay 0.2 - treemacs-file-name-transformer #'identity - treemacs-follow-after-init t - treemacs-expand-after-init t - treemacs-find-workspace-method 'find-for-file-or-pick-first - treemacs-git-command-pipe "" - treemacs-goto-tag-strategy 'refetch-index - treemacs-indentation 2 - treemacs-indentation-string " " - treemacs-is-never-other-window nil - treemacs-max-git-entries 5000 - treemacs-missing-project-action 'ask - treemacs-move-forward-on-expand nil - treemacs-no-png-images nil - treemacs-no-delete-other-windows t - treemacs-project-follow-cleanup nil - treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory) - treemacs-position 'left - treemacs-read-string-input 'from-child-frame - treemacs-recenter-distance 0.1 - treemacs-recenter-after-file-follow nil - treemacs-recenter-after-tag-follow nil - treemacs-recenter-after-project-jump 'always - treemacs-recenter-after-project-expand 'on-distance - treemacs-litter-directories '("/node_modules" "/.venv" "/.cask") - treemacs-show-cursor nil - treemacs-show-hidden-files t - treemacs-silent-filewatch nil - treemacs-silent-refresh nil - treemacs-sorting 'alphabetic-asc - treemacs-select-when-already-in-treemacs 'move-back - treemacs-space-between-root-nodes t - treemacs-tag-follow-cleanup t - treemacs-tag-follow-delay 1.5 - treemacs-text-scale nil - treemacs-user-mode-line-format nil - treemacs-user-header-line-format nil - treemacs-wide-toggle-width 70 - treemacs-width 25 - treemacs-width-increment 1 - treemacs-width-is-initially-locked t - treemacs-workspace-switch-cleanup nil) - - ;; The default width and height of the icons is 22 pixels. If you are - ;; using a Hi-DPI display, uncomment this to double the icon size. - ;;(treemacs-resize-icons 44) - - (treemacs-follow-mode t) - (treemacs-filewatch-mode t) - (treemacs-fringe-indicator-mode 'always) - - (pcase (cons (not (null (executable-find "git"))) - (not (null treemacs-python-executable))) - (`(t . t) - (treemacs-git-mode 'deferred)) - (`(t . _) - (treemacs-git-mode 'simple))) - - (treemacs-hide-gitignored-files-mode nil)) - :bind - (:map global-map - ("M-0" . treemacs-select-window) - ("C-x t 1" . treemacs-delete-other-windows) - ("C-x t t" . treemacs) - ("C-x t d" . treemacs-select-directory) - ("C-x t B" . treemacs-bookmark) - ("C-x t C-t" . treemacs-find-file) - ("C-x t M-t" . treemacs-find-tag))) - - (use-package treemacs-projectile - :after (treemacs projectile) - :ensure t) - - (use-package treemacs-icons-dired - :hook (dired-mode . treemacs-icons-dired-enable-once) - :ensure t) - - (use-package treemacs-tab-bar ;;treemacs-tab-bar if you use tab-bar-mode - :after (treemacs) - :ensure t - :config (treemacs-set-scope-type 'Tabs)) - #+end_src ** Projectile Projectile is a project manager which helps you with git and stuff. @@ -680,8 +613,14 @@ written in Perl. #+begin_src emacs-lisp (use-package "ack" - :ensure t - ) + :ensure t) +#+end_src +** whitespace-cleanup-mode +Useful for makefiles. +#+begin_src emacs-lisp +(use-package "whitespace-cleanup-mode" + :ensure t + :init(add-hook 'after-init-hook 'whitespace-cleanup-mode)) #+end_src ** Nyancat Yes. @@ -691,7 +630,46 @@ Yes. :init(nyan-mode)) #+end_src +<<<<<<< HEAD +** Orderless +#+begin_src emacs-lisp + (use-package orderless + :ensure t + :custom + (completion-styles '(orderless basic)) + (completion-category-overrides '((file (styles basic partial-completion))))) +#+end_src +** web-mode +#+begin_src emacs-lisp + (use-package web-mode + :ensure t + :config + (define-key web-mode-map (kbd "C-c C-e") 'web-mode-element-close) + (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) + (define-key web-mode-map (kbd "C-c C-o") 'web-mode-element-insert)) +#+end_src +||||||| parent of 5575988 (no se ni que he hecho) +======= +** Orderless +#+begin_src emacs-lisp + (use-package orderless + :ensure t + :custom + (completion-styles '(orderless basic)) + (completion-category-overrides '((file (styles basic partial-completion))))) +#+end_src +** web-mode +#+begin_src emacs-lisp + (use-package web-mode + :ensure t + :config + (define-key web-mode-map (kbd "C-c C-e") 'web-mode-element-close) + (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) + (define-key web-mode-map (kbd "C-c C-o") 'web-mode-element-insert)) +#+end_src + +>>>>>>> 5575988 (no se ni que he hecho) * Vertico Better interactive selection minibuffer. Alternative to ido and helm. This also installs =marginalia-mode=. So you can have further @@ -709,16 +687,12 @@ information of the commands, files and stuff in the minibuffer. ;; Different scroll margin (setq vertico-scroll-margin 10) - ;; Show more candidates (setq vertico-count 10) - ;; Grow and shrink the Vertico minibuffer (setq vertico-resize nil) - ;; Optionally enable cycling for `vertico-next' and `vertico-previous'. (setq vertico-cycle nil)) - ;; Persist history over Emacs restarts. Vertico sorts by history position. (use-package savehist :init @@ -825,8 +799,7 @@ create it in case you accidentally killed the buffer) (setq doom-modeline-time-icon nil) (setq doom-modeline-env-version t) (setq doom-modeline-env-python-executable "python") - (setq doom-modeline-env-perl-executable "perl") - ) + (setq doom-modeline-env-perl-executable "perl")) #+end_src diff --git a/init.el b/init.el index d4b751f..cef4980 100644 --- a/init.el +++ b/init.el @@ -1 +1 @@ -(org-babel-load-file "~/.emacs.d/config.org") +(org-babel-load-file "~/.config/emacs/config.org") diff --git a/perltidy.el b/perltidy.el new file mode 100644 index 0000000..cd73ae7 --- /dev/null +++ b/perltidy.el @@ -0,0 +1,251 @@ +;;; perltidy.el --- Tidy perl code + +;; Copyright (C) 2007-2015 Free Software Foundation, Inc. +;; +;; Author: Ye Wenbin +;; Maintainer: Kirill Babikhin +;; Created: 22 Dec 2007 +;; Version: 0.05 +;; Keywords: tools, convenience, languages + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; if not, write to the Free Software +;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Commentary: + +;; As the PBP(Perl Best Practice) suggest, put this to your ~/.perltidyrc: +;; ## .perltidyrc --- configuration for perltidy +;; # Max line width is 78 cols +;; -l=78 +;; # Indent level is 4 cols +;; -i=4 +;; # Continuation indent is 4 cols +;; -ci=4 +;; # Output to STDOUT +;; -st +;; # Errors to STDERR +;; -se +;; # Maximal vertical tightness +;; -vt=2 +;; # No extra indentation for closing brackets +;; -cti=0 +;; # Medium parenthesis tightness +;; -pt=1 +;; # Medium brace tightness +;; -bt=1 +;; # Medium square bracket tightness +;; -sbt=1 +;; # Medium block brace tightness +;; -bbt=1 +;; # No space before semicolons +;; -nsfs +;; # Don't outdent long quoted strings +;; -nolq +;; # Break before all operators +;; -wbb="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x=" + +;; Put this file into your load-path and the following into your ~/.emacs: +;; (require 'perltidy) + +;;; Code: + +(eval-when-compile + (require 'cl)) + +(defgroup perltidy nil + "Tidy perl code using perltidy" + :group 'tools + :group 'pde) + +(defcustom perltidy-program "perltidy" + "*Program name of perltidy" + :type 'string + :group 'perltidy) + +(defcustom perltidy-program-params + '(;; I/O control + "--standard-output" + "--standard-error-output" + "--force-read-binary" + "--quiet" + + ;; FORMATTING OPTIONS + "--no-check-syntax" + ) + "*perltidy run options" + :type 'list + :group 'perltidy) + +(defcustom perltidy-rcregex "\\.perltidyrc" + "perltidyrc file regex" + :type 'string + :group 'perltidy) + +(defmacro perltidy-save-point (&rest body) + (declare (indent 0) (debug t)) + `(let ((old-point (point))) + ,@body + (goto-char old-point))) + +;;;###autoload +(defun perltidy-region (beg end) + "Tidy perl code in the region." + (interactive "r") + (or (get 'perltidy-program 'has-perltidy) + (if (executable-find perltidy-program) + (put 'perltidy-program 'has-perltidy t) + (error "Seem perltidy is not installed"))) + (perltidy-save-point + + (let ((old-perltidy-env (getenv "PERLTIDY")) + (remote? (tramp-tramp-file-p buffer-file-name)) + (perltidyrc (perltidy-find-perltidyrc buffer-file-truename)) + (perltidyrc-remote (expand-file-name "perltidyrc-remote" temporary-file-directory)) + (perltidy-run-list perltidy-program-params) + ) + + (if (and (bound-and-true-p remote?) + perltidyrc) + (progn + (require 'tramp-sh) + (tramp-sh-handle-copy-file perltidyrc perltidyrc-remote t) + (setq perltidyrc perltidyrc-remote))) + + (if perltidyrc + (setq perltidy-run-list + (append perltidy-run-list + (list (concat "-pro=" perltidyrc))))) + + (apply #'call-process-region + (append (list beg end perltidy-program + t + t + t + ) + perltidy-run-list))) + t)) + +;;;###autoload +(defun perltidy-buffer () + "Call perltidy for whole buffer." + (interactive) + (perltidy-region (point-min) (point-max))) + +;;;###autoload +(defun perltidy-subroutine () + "Call perltidy for subroutine at point." + (interactive) + + (save-excursion + (let ((current-point (point)) + b e) + (setq b (progn (beginning-of-defun) (point))) + (when (and + (looking-at "\\s-*sub\\s-+") + (< b current-point) + (> (save-excursion + (setq e (progn (end-of-defun) (point)))) + current-point)) + (perltidy-region b e))))) + +;;;###autoload +(defun perltidy-dwim-safe (arg) + "Perltidy Do What I Mean safe. +If region is active call perltidy on the region. +If inside subroutine, call perltidy on the subroutine, +otherwise stop." + (interactive "P") + (let ((buf (current-buffer)) + beg end) + (cond ((and mark-active transient-mark-mode) + (setq beg (region-beginning) + end (region-end))) + ((save-excursion + (let ((current-point (point)) + b e) + (setq b (progn (beginning-of-defun) (point))) + (when (and + (looking-at "\\s-*sub\\s-+") + (< b current-point) + (> (save-excursion + (setq e (progn (end-of-defun) (point)))) + current-point)) + (setq beg b + end e))))) + (t (setq beg nil + end nil))) + (if (and beg + end) + (progn + (perltidy-region beg end) + (font-lock-fontify-buffer))))) + +;;;###autoload +(defun perltidy-dwim (arg) + "Perltidy Do What I Mean. +If region is active call perltidy on the region. +If inside subroutine, call perltidy on the subroutine, +otherwise call perltidy for whole buffer." + (interactive "P") + (let ((buf (current-buffer)) + beg end) + (cond ((and mark-active transient-mark-mode) + (setq beg (region-beginning) + end (region-end))) + ((save-excursion + (let ((current-point (point)) + b e) + (setq b (progn (beginning-of-defun) (point))) + (when (and + (looking-at "\\s-*sub\\s-+") + (< b current-point) + (> (save-excursion + (setq e (progn (end-of-defun) (point)))) + current-point)) + (setq beg b + end e))))) + (t (setq beg (point-min) + end (point-max)))) + (perltidy-region beg end) + (font-lock-fontify-buffer))) + +(defun perltidy-find-perltidyrc (&optional dir rcregex) + (unless dir (setq dir (buffer-file-name))) + (unless rcregex (setq rcregex perltidy-rcregex)) + (setq dir (file-name-directory dir)) + + (let (rcfile) + (catch 'my-tag + (locate-dominating-file + dir + (lambda (parent) + (let ((rc (car (ignore-errors (directory-files parent t rcregex)))) + (pparent (file-name-directory (directory-file-name parent)))) + (setq rcfile rc) + (cond ((equal parent + pparent) + (if (= (length rc) 0) + (throw 'my-tag rc) + (throw 'my-tag nil))) + + ((and (= (length rc) 0) + (file-exists-p (expand-file-name "lib" pparent)) + (file-directory-p (expand-file-name "lib" pparent))) + (setq rcfile (car (ignore-errors (directory-files pparent t rcregex)))) + (throw 'my-tag rcfile)) + (t rc)))))) + rcfile)) + +(provide 'perltidy) +;;; perltidy.el ends here