Compare commits
35 Commits
aa024c234c
...
master
Author | SHA1 | Date | |
---|---|---|---|
eb14dff0cd | |||
58bb81edeb | |||
f689d2afe1 | |||
ed547bce34 | |||
bf2bf01252 | |||
6c39aee1d0 | |||
d1ddd81282 | |||
96b0ccf056 | |||
7289832288 | |||
03ee657182 | |||
0b6c2058ed | |||
d50d5228cf | |||
b0ebfce668 | |||
99c6b012e5 | |||
5ee6db55e0 | |||
709ca7fe27 | |||
a6b197b6a4 | |||
021e19fb3c | |||
56141976e9 | |||
7c4fea3b60 | |||
b7168fd349 | |||
87dc0ab99a | |||
9b7635e69e | |||
cadc7a3a7c | |||
80e693caba | |||
1f31bf736b | |||
5b6f53fe4f | |||
04f64eda5e | |||
8f4e9f9fb8 | |||
5ffc4df914 | |||
9727ed4949 | |||
fac74ab714 | |||
ecbb0e7fe9 | |||
fb3747f81d | |||
c11add9cab |
1
.gitignore
vendored
1
.gitignore
vendored
@ -36,3 +36,4 @@ workspace/
|
|||||||
/intelephense/
|
/intelephense/
|
||||||
/auto-save-list/
|
/auto-save-list/
|
||||||
/*.eld
|
/*.eld
|
||||||
|
/.custom.el
|
||||||
|
34
abbrev_defs
34
abbrev_defs
@ -1,4 +1,4 @@
|
|||||||
;;-*-coding: utf-8;-*-
|
;; -*- coding: utf-8; lexical-binding: t -*-
|
||||||
(define-abbrev-table 'mhtml-mode-abbrev-table
|
(define-abbrev-table 'mhtml-mode-abbrev-table
|
||||||
'(
|
'(
|
||||||
("doc" "<!DOCTYPE html>
|
("doc" "<!DOCTYPE html>
|
||||||
@ -14,6 +14,34 @@
|
|||||||
("doctype" "<!DOCTYPE html>" nil :count 0)
|
("doctype" "<!DOCTYPE html>" nil :count 0)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
(define-abbrev-table 'php-ts-mode-abbrev-table
|
||||||
|
'(
|
||||||
|
("bwtest" "use Tests\\TestCase;
|
||||||
|
|
||||||
|
class Test extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @group
|
||||||
|
* @group
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function Service()
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Preparing
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asserts
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}" nil :count 6)
|
||||||
|
))
|
||||||
|
|
||||||
(define-abbrev-table 'web-mode-abbrev-table
|
(define-abbrev-table 'web-mode-abbrev-table
|
||||||
'(
|
'(
|
||||||
("doc" "<!DOCTYPE html>
|
("doc" "<!DOCTYPE html>
|
||||||
@ -25,7 +53,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
</body>
|
</body>
|
||||||
</html>" nil :count 9)
|
</html>" nil :count 10)
|
||||||
("doctype" "<!DOCTYPE html>" nil :count 1)
|
("doctype" "<!DOCTYPE html>" nil :count 2)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
;; Esta configuración para Inteligencia artifical en emacs, principalmente para el uso de chats.
|
;; Configuración para Inteligencia artifical en Emacs.
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
@ -24,22 +24,33 @@
|
|||||||
;; "llava:latest"))
|
;; "llava:latest"))
|
||||||
gptel-default-mode 'org-mode
|
gptel-default-mode 'org-mode
|
||||||
gptel-prompt-prefix-alist
|
gptel-prompt-prefix-alist
|
||||||
'((markdown-mode . "# ")
|
'((markdown-mode . "# User\n\n")
|
||||||
(org-mode . "* ")
|
(org-mode . "* User\n\n")
|
||||||
(text-mode . "# "))
|
(text-mode . "# User\n\n"))
|
||||||
|
gptel-response-prefix-alist
|
||||||
|
'((markdown-mode . "# AI\n\n")
|
||||||
|
(org-mode . "* AI\n\n")
|
||||||
|
(text-mode . "# AI\n\n"))
|
||||||
gptel-directives
|
gptel-directives
|
||||||
'((default . "Eres un LLM que vive dentro de Emacs. Responde de manera concisa.")
|
'((default . "You are a large language model living in Emacs and a helpful assistant. Respond concisely in Spanish."))
|
||||||
(programming . "Eres un LLM y un programador profesional cuidadoso. Provee el código y solo el código como output sin ningún texto adicional, prompt o nota.")
|
|
||||||
(programming_tutor . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y realiza sugerencias concisas en español para mejorarlo.")
|
|
||||||
(programming_explainer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español de manera concisa, su funcionamiento.")
|
|
||||||
(programming_describer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español su funcionamiento línea a línea.")
|
|
||||||
(writing . "Eres un LLM y un asistente de escritura. Responde de manera concisa.")
|
|
||||||
(grammarly . "You are a large language model and professional philologist. Improve grammar and spelling.")
|
|
||||||
(chat . "Eres un LLM y un compañero de conversación. Responde de manera concisa.")
|
|
||||||
(traductor . "Eres un traductor profesional. Traduce a español tomando en cuenta los posibles tecnicismos y nombres que no deberían traducirse.")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
(setopt gptel-include-reasoning nil)) ;; Mantener hasta resolver: https://github.com/ragnard/gptel-magit/issues/8
|
||||||
|
|
||||||
|
(use-package copilot
|
||||||
|
:bind (("M-<return>" . copilot-complete)
|
||||||
|
:map copilot-completion-map
|
||||||
|
("C-g" . 'copilot-clear-overlay)
|
||||||
|
("C-<return>" . 'copilot-accept-completion)
|
||||||
|
("C-<tab>" . 'copilot-accept-completion-by-word)))
|
||||||
|
|
||||||
|
(use-package gptel-magit
|
||||||
|
:ensure t
|
||||||
|
:hook (magit-mode . gptel-magit-install))
|
||||||
|
|
||||||
|
(use-package macher
|
||||||
|
:ensure (:host github :repo "kmontag/macher")
|
||||||
|
:custom
|
||||||
|
(macher-action-buffer-ui 'org))
|
||||||
|
|
||||||
(provide 'init-ai)
|
(provide 'init-ai)
|
||||||
;;; init-ai.el ends here
|
;;; init-ai.el ends here
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
(setq package-native-compile t)
|
(setq package-native-compile t)
|
||||||
))
|
))
|
||||||
|
|
||||||
|
;; Custom configs file
|
||||||
|
(setq custom-file (concat user-emacs-directory ".custom.el"))
|
||||||
|
|
||||||
;; Garbage Collector Magic Hack
|
;; Garbage Collector Magic Hack
|
||||||
(use-package gcmh
|
(use-package gcmh
|
||||||
:diminish
|
:diminish
|
||||||
@ -67,6 +70,7 @@
|
|||||||
(use-package simple
|
(use-package simple
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:hook ((after-init . size-indication-mode)
|
:hook ((after-init . size-indication-mode)
|
||||||
|
(before-save . delete-trailing-whitespace)
|
||||||
(text-mode . visual-line-mode))
|
(text-mode . visual-line-mode))
|
||||||
:init
|
:init
|
||||||
(setq column-number-mode t
|
(setq column-number-mode t
|
||||||
@ -78,9 +82,8 @@
|
|||||||
;; Visualize TAB, (HARD) SPACE, NEWLINE
|
;; Visualize TAB, (HARD) SPACE, NEWLINE
|
||||||
(setq-default show-trailing-whitespace nil ; Don't show trailing whitespace by default
|
(setq-default show-trailing-whitespace nil ; Don't show trailing whitespace by default
|
||||||
cursor-type 'bar) ; Usar la barrita como cursor
|
cursor-type 'bar) ; Usar la barrita como cursor
|
||||||
(setq show-trailing-whitespace t)
|
(setq show-trailing-whitespace t))
|
||||||
(add-hook 'before-save-hook #'delete-trailing-whitespace nil t)
|
|
||||||
)
|
|
||||||
|
|
||||||
;; UTF-8 please
|
;; UTF-8 please
|
||||||
(when (fboundp 'set-charset-priority)
|
(when (fboundp 'set-charset-priority)
|
||||||
@ -126,30 +129,5 @@
|
|||||||
(async-bytecomp-package-mode 1)
|
(async-bytecomp-package-mode 1)
|
||||||
(dired-async-mode 1))
|
(dired-async-mode 1))
|
||||||
|
|
||||||
;; Child frame
|
|
||||||
(use-package posframe
|
|
||||||
:hook (after-load-theme . posframe-delete-all)
|
|
||||||
:init
|
|
||||||
(defface posframe-border
|
|
||||||
`((t (:inherit region)))
|
|
||||||
"Face used by the `posframe' border."
|
|
||||||
:group 'posframe)
|
|
||||||
(defvar posframe-border-width 2
|
|
||||||
"Default posframe border width.")
|
|
||||||
:config
|
|
||||||
(with-no-warnings
|
|
||||||
(defun my-posframe--prettify-frame (&rest _)
|
|
||||||
(set-face-background 'fringe nil posframe--frame))
|
|
||||||
(advice-add #'posframe--create-posframe :after #'my-posframe--prettify-frame)
|
|
||||||
|
|
||||||
(defun posframe-poshandler-frame-center-near-bottom (info)
|
|
||||||
(cons (/ (- (plist-get info :parent-frame-width)
|
|
||||||
(plist-get info :posframe-width))
|
|
||||||
2)
|
|
||||||
(/ (+ (plist-get info :parent-frame-height)
|
|
||||||
(* 2 (plist-get info :font-height)))
|
|
||||||
2)))))
|
|
||||||
|
|
||||||
|
|
||||||
(provide 'init-base)
|
(provide 'init-base)
|
||||||
;;; init-base.el ends here
|
;;; init-base.el ends here
|
||||||
|
@ -66,20 +66,30 @@
|
|||||||
))
|
))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
;; Set de funciones de para las sugerencias de corfu.
|
;; Set de funciones de para las sugerencias de corfu.
|
||||||
(use-package cape
|
(use-package cape
|
||||||
:ensure (:host github :repo "minad/cape")
|
:ensure (:host github :repo "minad/cape")
|
||||||
:after corfu
|
:after corfu
|
||||||
|
:hook (eglot-managed-mode . (lambda()
|
||||||
|
(setq completion-at-point-functions
|
||||||
|
(list (cape-capf-super
|
||||||
|
#'eglot-completion-at-point
|
||||||
|
#'cape-abbrev
|
||||||
|
#'cape-dabbrev
|
||||||
|
#'cape-history
|
||||||
|
#'cape-dict
|
||||||
|
#'cape-file
|
||||||
|
#'cape-keyword)))))
|
||||||
:bind (("C-c c f" . cape-file)
|
:bind (("C-c c f" . cape-file)
|
||||||
("C-c c l" . cape-line))
|
("C-c c l" . cape-line))
|
||||||
:init
|
:init
|
||||||
(setq text-mode-ispell-word-completion nil)
|
(setq text-mode-ispell-word-completion nil)
|
||||||
;; (add-to-list 'completion-at-point-functions #'cape-line) ;; Completar línea actual en función de lo que dice otras líneas de buffer.
|
;; (add-to-list 'completion-at-point-functions #'cape-line) ;; Completar línea actual en función de lo que dice otras líneas de buffer.
|
||||||
;; (add-to-list 'completion-at-point-functions #'cape-tex) ;; Completar Latex (caracteres unicode).
|
;; (add-to-list 'completion-at-point-functions #'cape-tex) ;; Completar Latex (caracteres unicode).
|
||||||
(add-to-list 'completion-at-point-functions #'cape-dict) ;; Completar desde un diccionario (por defecto toma el de linux que está en /usr/share/dict/words).
|
|
||||||
(add-to-list 'completion-at-point-functions #'cape-dabbrev) ;; Completar desde otras la palabras del buffer.
|
(add-to-list 'completion-at-point-functions #'cape-dabbrev) ;; Completar desde otras la palabras del buffer.
|
||||||
(add-to-list 'completion-at-point-functions #'cape-abbrev) ;; Completar desde una abreviaciónes configuradas con add-global-abbrev (añadir abreviación global) o add-mode-abbrev (abreviación para el modo actual).
|
(add-to-list 'completion-at-point-functions #'cape-abbrev) ;; Completar desde una abreviaciónes configuradas con add-global-abbrev (añadir abreviación global) o add-mode-abbrev (abreviación para el modo actual).
|
||||||
|
(add-to-list 'completion-at-point-functions #'cape-history) ;; Completar desde el historial de altocompletado
|
||||||
|
(add-to-list 'completion-at-point-functions #'cape-dict) ;; Completar desde un diccionario (por defecto toma el de linux que está en /usr/share/dict/words).
|
||||||
(add-to-list 'completion-at-point-functions #'cape-file) ;; Completar rutas de archivos.
|
(add-to-list 'completion-at-point-functions #'cape-file) ;; Completar rutas de archivos.
|
||||||
(add-to-list 'completion-at-point-functions #'cape-keyword) ;; Completar desde keyword del lenguaje.
|
(add-to-list 'completion-at-point-functions #'cape-keyword) ;; Completar desde keyword del lenguaje.
|
||||||
|
|
||||||
|
@ -71,8 +71,7 @@
|
|||||||
:ensure nil
|
:ensure nil
|
||||||
:hook(;; show org ediffs unfolded
|
:hook(;; show org ediffs unfolded
|
||||||
(ediff-prepare-buffer . outline-show-all)
|
(ediff-prepare-buffer . outline-show-all)
|
||||||
;; restore window layout when done
|
)
|
||||||
(ediff-quit . winner-undo))
|
|
||||||
:config
|
:config
|
||||||
(setq ediff-window-setup-function 'ediff-setup-windows-plain
|
(setq ediff-window-setup-function 'ediff-setup-windows-plain
|
||||||
ediff-split-window-function 'split-window-horizontally
|
ediff-split-window-function 'split-window-horizontally
|
||||||
@ -149,7 +148,19 @@
|
|||||||
(truncate-lines . nil)
|
(truncate-lines . nil)
|
||||||
(which-func-mode . nil))))
|
(which-func-mode . nil))))
|
||||||
|
|
||||||
|
;; Generador de texto aleatorio para placeholding
|
||||||
(use-package lorem-ipsum)
|
(use-package lorem-ipsum)
|
||||||
|
|
||||||
|
;; Corrector ortográfico y de sintaxis avanzado
|
||||||
|
(use-package languagetool
|
||||||
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:commands (languagetool-check
|
||||||
|
languagetool-clear-suggestions
|
||||||
|
languagetool-correct-at-point
|
||||||
|
languagetool-correct-buffer
|
||||||
|
languagetool-set-language
|
||||||
|
languagetool-server-mode))
|
||||||
|
|
||||||
(provide 'init-editor)
|
(provide 'init-editor)
|
||||||
;;; init-editor.el ends here
|
;;; init-editor.el ends here
|
||||||
|
@ -88,7 +88,9 @@ If PROJECT is not specified, assume current project root."
|
|||||||
;; Renombrar el archivo actual
|
;; Renombrar el archivo actual
|
||||||
(defun rename-this-file (new-name)
|
(defun rename-this-file (new-name)
|
||||||
"Renames both current buffer and file it's visiting to NEW-NAME."
|
"Renames both current buffer and file it's visiting to NEW-NAME."
|
||||||
(interactive "sNew name: ")
|
(interactive (list (read-string "New name: "
|
||||||
|
(file-name-nondirectory
|
||||||
|
(buffer-file-name)))))
|
||||||
(let ((name (buffer-name))
|
(let ((name (buffer-name))
|
||||||
(filename (buffer-file-name)))
|
(filename (buffer-file-name)))
|
||||||
(unless filename
|
(unless filename
|
||||||
@ -100,7 +102,7 @@ If PROJECT is not specified, assume current project root."
|
|||||||
(rename-buffer new-name))))
|
(rename-buffer new-name))))
|
||||||
|
|
||||||
;; Copiar el nombre del archivo actual
|
;; Copiar el nombre del archivo actual
|
||||||
(defun copy-file-name ()
|
(defun copy-filename ()
|
||||||
"Copy the current buffer file name to the clipboard."
|
"Copy the current buffer file name to the clipboard."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((filename (if (equal major-mode 'dired-mode)
|
(let ((filename (if (equal major-mode 'dired-mode)
|
||||||
@ -112,6 +114,18 @@ If PROJECT is not specified, assume current project root."
|
|||||||
(message "Copied '%s'" filename))
|
(message "Copied '%s'" filename))
|
||||||
(warn "Current buffer is not attached to a file!"))))
|
(warn "Current buffer is not attached to a file!"))))
|
||||||
|
|
||||||
|
(defun copy-basename ()
|
||||||
|
"Copy the current buffer basename to the clipboard."
|
||||||
|
(interactive)
|
||||||
|
(let ((filename (if (equal major-mode 'dired-mode)
|
||||||
|
default-directory
|
||||||
|
(file-name-nondirectory (buffer-file-name)))))
|
||||||
|
(if filename
|
||||||
|
(progn
|
||||||
|
(kill-new filename)
|
||||||
|
(message "Copied '%s'" filename))
|
||||||
|
(warn "Current buffer is not attached to a file!"))))
|
||||||
|
|
||||||
;; Verifica si se puede levantar un childframe
|
;; Verifica si se puede levantar un childframe
|
||||||
(defun childframe-workable-p ()
|
(defun childframe-workable-p ()
|
||||||
"Whether childframe is workable."
|
"Whether childframe is workable."
|
||||||
@ -125,5 +139,37 @@ If PROJECT is not specified, assume current project root."
|
|||||||
"Check if font with FONT-NAME is available."
|
"Check if font with FONT-NAME is available."
|
||||||
(find-font (font-spec :name font-name)))
|
(find-font (font-spec :name font-name)))
|
||||||
|
|
||||||
|
(defun insert-filename ()
|
||||||
|
"Insert the full path file name into the current buffer."
|
||||||
|
(interactive)
|
||||||
|
(insert (buffer-file-name)))
|
||||||
|
|
||||||
|
(defun insert-basename ()
|
||||||
|
"Insert the filename (without path) into the current buffer."
|
||||||
|
(interactive)
|
||||||
|
(insert (file-name-nondirectory (buffer-file-name))))
|
||||||
|
|
||||||
|
(defun sort-lines-by-length (reverse beg end)
|
||||||
|
"Sort lines by length."
|
||||||
|
(interactive "P\nr")
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(narrow-to-region beg end)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(let ;; To make `end-of-line' and etc. to ignore fields.
|
||||||
|
((inhibit-field-text-motion t))
|
||||||
|
(sort-subr reverse 'forward-line 'end-of-line nil nil
|
||||||
|
(lambda (l1 l2)
|
||||||
|
(apply #'< (mapcar (lambda (range) (- (cdr range) (car range)))
|
||||||
|
(list l1 l2)))))))))
|
||||||
|
|
||||||
|
(defun corfu-auto-toggle()
|
||||||
|
"Toggle corfu autocomplete."
|
||||||
|
(interactive)
|
||||||
|
(global-corfu-mode 0)
|
||||||
|
(setq corfu-auto (not corfu-auto))
|
||||||
|
(global-corfu-mode 1)
|
||||||
|
)
|
||||||
|
|
||||||
(provide 'init-functions)
|
(provide 'init-functions)
|
||||||
;;; init-functions.el ends here.
|
;;; init-functions.el ends here.
|
||||||
|
@ -30,13 +30,16 @@
|
|||||||
(global-set-key (kbd "C-x mp") 'php-ts-mode)
|
(global-set-key (kbd "C-x mp") 'php-ts-mode)
|
||||||
(global-set-key (kbd "C-x mw") 'web-mode)
|
(global-set-key (kbd "C-x mw") 'web-mode)
|
||||||
|
|
||||||
;; Cambiar de ventana
|
|
||||||
(global-set-key (kbd "C-S-o") 'other-window)
|
|
||||||
|
|
||||||
;; Saltar entre párrafos
|
;; Saltar entre párrafos
|
||||||
(define-key global-map "\M-[" 'backward-paragraph)
|
(define-key global-map "\M-[" 'backward-paragraph)
|
||||||
(define-key global-map "\M-]" 'forward-paragraph)
|
(define-key global-map "\M-]" 'forward-paragraph)
|
||||||
|
|
||||||
|
;; Insertar nombre del archivo
|
||||||
|
(global-set-key (kbd "C-c ff") 'insert-filename)
|
||||||
|
(global-set-key (kbd "C-c fb") 'insert-basename)
|
||||||
|
(global-set-key (kbd "C-c fcf") 'copy-filename)
|
||||||
|
(global-set-key (kbd "C-c fcb") 'copy-basename)
|
||||||
|
|
||||||
;; Deactivar el abrir *messages* al cliquear en el minibuffer
|
;; Deactivar el abrir *messages* al cliquear en el minibuffer
|
||||||
(define-key minibuffer-inactive-mode-map [mouse-1] #'ignore)
|
(define-key minibuffer-inactive-mode-map [mouse-1] #'ignore)
|
||||||
|
|
||||||
|
@ -39,13 +39,12 @@
|
|||||||
(eglot-ensure))))
|
(eglot-ensure))))
|
||||||
((markdown-mode yaml-mode yaml-ts-mode) . eglot-ensure))
|
((markdown-mode yaml-mode yaml-ts-mode) . eglot-ensure))
|
||||||
:init
|
:init
|
||||||
(setq read-process-output-max (* 1024 1024)) ; 1MB
|
(setq read-process-output-max (* 4 1024 1024)) ; 4MB
|
||||||
(setq eglot-autoshutdown t
|
(setq eglot-autoshutdown t
|
||||||
eglot-events-buffer-size 0
|
|
||||||
eglot-send-changes-idle-time 0.5)
|
eglot-send-changes-idle-time 0.5)
|
||||||
:config
|
:config
|
||||||
(setq eglot-sync-connect 0)
|
(setq eglot-sync-connect 0)
|
||||||
;; (add-to-list 'eglot-server-programs '(php-mode . ("intelephense" "--stdio")))
|
(add-to-list 'eglot-server-programs '(php-mode . ("intelephense" "--stdio")))
|
||||||
|
|
||||||
(add-to-list 'eglot-server-programs
|
(add-to-list 'eglot-server-programs
|
||||||
'((tsx-ts-mode
|
'((tsx-ts-mode
|
||||||
@ -63,7 +62,7 @@
|
|||||||
"Passes through required deno initialization options"
|
"Passes through required deno initialization options"
|
||||||
(list :enable t
|
(list :enable t
|
||||||
:lint t))
|
:lint t))
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Mejorar la velocidad de eglot (un binario en rust )
|
;; Mejorar la velocidad de eglot (un binario en rust )
|
||||||
(use-package eglot-booster
|
(use-package eglot-booster
|
||||||
@ -86,17 +85,25 @@
|
|||||||
;; Revisar por errores en el código
|
;; Revisar por errores en el código
|
||||||
(use-package flymake
|
(use-package flymake
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:hook (prog-mode . (lambda ()
|
;; :hook (prog-mode . (lambda ()
|
||||||
(unless (derived-mode-p 'makefile-mode)
|
;; (unless (derived-mode-p 'makefile-mode)
|
||||||
(flymake-mode))))
|
;; (flymake-mode))))
|
||||||
:config
|
:init
|
||||||
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
|
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Mostar los errores de flymake en un popup-tip
|
(use-package flycheck
|
||||||
(use-package flymake-diagnostic-at-point
|
:init (global-flycheck-mode)
|
||||||
:after flymake
|
:config
|
||||||
:hook (flymake-mode . flymake-diagnostic-at-point-mode))
|
(setq flycheck-indication-mode nil
|
||||||
|
flycheck-phpcs-standard "PSR12"))
|
||||||
|
|
||||||
|
(use-package flycheck-eglot
|
||||||
|
:after flycheck
|
||||||
|
:custom
|
||||||
|
(flycheck-eglot-exclusive nil)
|
||||||
|
:init
|
||||||
|
(global-flycheck-eglot-mode 1))
|
||||||
|
|
||||||
(provide 'init-lsp)
|
(provide 'init-lsp)
|
||||||
;;; init-lsp.el ends here
|
;;; init-lsp.el ends here
|
||||||
|
@ -121,15 +121,5 @@
|
|||||||
completion-ignore-case t)
|
completion-ignore-case t)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; Mover el minibufer de vertico al centro de la pantalla.
|
|
||||||
(use-package vertico-posframe
|
|
||||||
:functions posframe-poshandler-frame-center
|
|
||||||
:hook (vertico-mode . vertico-posframe-mode)
|
|
||||||
:init (setq vertico-posframe-poshandler
|
|
||||||
#'posframe-poshandler-frame-center
|
|
||||||
vertico-posframe-parameters
|
|
||||||
'((left-fringe . 8)
|
|
||||||
(right-fringe . 8))))
|
|
||||||
|
|
||||||
(provide 'init-minibuffer)
|
(provide 'init-minibuffer)
|
||||||
;;; init-minibuffer.el ends here
|
;;; init-minibuffer.el ends here
|
||||||
|
@ -248,6 +248,10 @@
|
|||||||
;; Org babel para traducciones (mediante google translate)
|
;; Org babel para traducciones (mediante google translate)
|
||||||
(use-package ob-translate)
|
(use-package ob-translate)
|
||||||
|
|
||||||
|
;; Autocompletado para los headers de los bloques
|
||||||
|
(use-package corg
|
||||||
|
:ensure (:host github :repo "isamert/corg.el"))
|
||||||
|
|
||||||
;; Org mode en modo presentación
|
;; Org mode en modo presentación
|
||||||
(use-package org-present
|
(use-package org-present
|
||||||
:after (org)
|
:after (org)
|
||||||
|
@ -10,30 +10,15 @@
|
|||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; Show function arglist or variable docstring
|
;; Mostrar la ayuda de eldoc/documentación en un childframe
|
||||||
(use-package eldoc
|
(use-package eldoc-box
|
||||||
:ensure nil
|
:defer t
|
||||||
:diminish
|
:bind ("<f1>" . eldoc-box-help-at-point))
|
||||||
:config
|
|
||||||
(when (childframe-workable-p)
|
|
||||||
;; Mostrar la ayuda de eldoc/documentación en un childframe
|
|
||||||
(use-package eldoc-box
|
|
||||||
:diminish (eldoc-box-hover-mode eldoc-box-hover-at-point-mode)
|
|
||||||
:bind ("<f1>" . eldoc-box-help-at-point)
|
|
||||||
:custom
|
|
||||||
(eldoc-box-lighter nil)
|
|
||||||
(eldoc-box-only-multi-line t)
|
|
||||||
(eldoc-box-clear-with-C-g t)
|
|
||||||
:custom-face
|
|
||||||
(eldoc-box-border ((t (:inherit posframe-border :background unspecified))))
|
|
||||||
(eldoc-box-body ((t (:inherit tooltip))))
|
|
||||||
:hook ((eglot-managed-mode . eldoc-box-hover-at-point-mode))
|
|
||||||
:config
|
|
||||||
;; Prettify `eldoc-box' frame
|
|
||||||
(setf (alist-get 'left-fringe eldoc-box-frame-parameters) 8
|
|
||||||
(alist-get 'right-fringe eldoc-box-frame-parameters) 8))))
|
|
||||||
|
|
||||||
;; Code folding indicators using Tree-sitter
|
;; Cambiar fácilmente entre naming conventions (camel, pascal, kebab, snake, etc.)
|
||||||
|
(use-package string-inflection)
|
||||||
|
|
||||||
|
;; Code folding indicators using Tree-sitter
|
||||||
(use-package treesit-fold-indicators
|
(use-package treesit-fold-indicators
|
||||||
:ensure treesit-fold
|
:ensure treesit-fold
|
||||||
:hook (after-init . global-treesit-fold-indicators-mode)
|
:hook (after-init . global-treesit-fold-indicators-mode)
|
||||||
@ -54,9 +39,9 @@
|
|||||||
xref-show-xrefs-function #'xref-show-definitions-completing-read))
|
xref-show-xrefs-function #'xref-show-definitions-completing-read))
|
||||||
|
|
||||||
;; Code styles
|
;; Code styles
|
||||||
(use-package editorconfig
|
;; (use-package editorconfig
|
||||||
:diminish
|
;; :diminish
|
||||||
:hook (elpaca-after-init . editorconfig-mode))
|
;; :hook (elpaca-after-init . editorconfig-mode))
|
||||||
|
|
||||||
;; Correr el código desde el buffer de emacs
|
;; Correr el código desde el buffer de emacs
|
||||||
(use-package quickrun
|
(use-package quickrun
|
||||||
@ -120,35 +105,12 @@
|
|||||||
:bind (:map prog-mode-map
|
:bind (:map prog-mode-map
|
||||||
("M-<f1>" . devdocs-dwim))
|
("M-<f1>" . devdocs-dwim))
|
||||||
:init
|
:init
|
||||||
(defconst devdocs-major-mode-docs-alist
|
|
||||||
'((c-mode . ("c"))
|
|
||||||
(c++-mode . ("cpp"))
|
|
||||||
(python-mode . ("python~3.10" "python~2.7"))
|
|
||||||
(ruby-mode . ("ruby~3.1"))
|
|
||||||
(rustic-mode . ("rust"))
|
|
||||||
(css-mode . ("css"))
|
|
||||||
(html-mode . ("html"))
|
|
||||||
(julia-mode . ("julia~1.8"))
|
|
||||||
(js-mode . ("javascript" "jquery"))
|
|
||||||
(emacs-lisp-mode . ("elisp")))
|
|
||||||
"Alist of major-mode and docs.")
|
|
||||||
|
|
||||||
(mapc
|
|
||||||
(lambda (mode)
|
|
||||||
(add-hook (intern (format "%s-hook" (car mode)))
|
|
||||||
(lambda ()
|
|
||||||
(setq-local devdocs-current-docs (cdr mode)))))
|
|
||||||
devdocs-major-mode-docs-alist)
|
|
||||||
|
|
||||||
(setq devdocs-data-dir (expand-file-name "devdocs" user-emacs-directory))
|
(setq devdocs-data-dir (expand-file-name "devdocs" user-emacs-directory))
|
||||||
|
|
||||||
(defun devdocs-dwim()
|
(defun devdocs-dwim()
|
||||||
"Look up a DevDocs documentation entry.
|
"Look up a DevDocs documentation entry.
|
||||||
|
|
||||||
Install the doc if it's not installed."
|
Install the doc if it's not installed."
|
||||||
(interactive)
|
(interactive)
|
||||||
;; Install the doc if it's not installed
|
;; Install the doc if it's not installed
|
||||||
(mapc
|
|
||||||
(lambda (slug)
|
(lambda (slug)
|
||||||
(unless (member slug (let ((default-directory devdocs-data-dir))
|
(unless (member slug (let ((default-directory devdocs-data-dir))
|
||||||
(seq-filter #'file-directory-p
|
(seq-filter #'file-directory-p
|
||||||
@ -159,7 +121,6 @@ Install the doc if it's not installed."
|
|||||||
(when (string= (alist-get 'slug doc) slug)
|
(when (string= (alist-get 'slug doc) slug)
|
||||||
(devdocs-install doc)))
|
(devdocs-install doc)))
|
||||||
(devdocs--available-docs))))
|
(devdocs--available-docs))))
|
||||||
(alist-get major-mode devdocs-major-mode-docs-alist))
|
|
||||||
|
|
||||||
;; Lookup the symbol at point
|
;; Lookup the symbol at point
|
||||||
(devdocs-lookup nil (thing-at-point 'symbol t))))
|
(devdocs-lookup nil (thing-at-point 'symbol t))))
|
||||||
@ -170,6 +131,16 @@ Install the doc if it's not installed."
|
|||||||
(use-package cmake-mode)
|
(use-package cmake-mode)
|
||||||
(use-package nginx-mode) ; Modo para leer archivos de configuración de nginx
|
(use-package nginx-mode) ; Modo para leer archivos de configuración de nginx
|
||||||
|
|
||||||
|
(use-package sql
|
||||||
|
:ensure nil
|
||||||
|
:hook (sql-interactive-mode . toggle-truncate-lines)
|
||||||
|
:config
|
||||||
|
(setq sql-mysql-login-params (append sql-mysql-login-params '(port))) ;; request port also
|
||||||
|
(setq sql-user "root") ;; user por defecto
|
||||||
|
(setq sql-server "127.0.0.1") ;; host por defecto
|
||||||
|
(setq sql-port 3306) ;; puerto por defecto para mysql
|
||||||
|
)
|
||||||
|
|
||||||
;; Major mode para archivos CSV
|
;; Major mode para archivos CSV
|
||||||
(use-package csv-mode
|
(use-package csv-mode
|
||||||
;; :hook ((csv-mode . csv-align-mode)
|
;; :hook ((csv-mode . csv-align-mode)
|
||||||
@ -210,5 +181,10 @@ Install the doc if it's not installed."
|
|||||||
:hook ((js-base-mode css-mode sgml-mode web-mode) . prettier-mode)
|
:hook ((js-base-mode css-mode sgml-mode web-mode) . prettier-mode)
|
||||||
:init (setq prettier-pre-warm 'none))
|
:init (setq prettier-pre-warm 'none))
|
||||||
|
|
||||||
|
(use-package subword
|
||||||
|
:ensure nil
|
||||||
|
:init
|
||||||
|
(global-subword-mode 1))
|
||||||
|
|
||||||
(provide 'init-prog)
|
(provide 'init-prog)
|
||||||
;;; init-prog.el ends here
|
;;; init-prog.el ends here
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
:commands (dired-sidebar-toggle-sidebar)
|
:commands (dired-sidebar-toggle-sidebar)
|
||||||
:config
|
:config
|
||||||
(setq dired-sidebar-theme 'nerd
|
(setq dired-sidebar-theme 'nerd
|
||||||
|
dired-sidebar-window-fixed nil
|
||||||
;; dired-sidebar-should-follow-file t
|
;; dired-sidebar-should-follow-file t
|
||||||
;; dired-sidebar-follow-file-idle-delay 0.5
|
;; dired-sidebar-follow-file-idle-delay 0.5
|
||||||
))
|
))
|
||||||
@ -84,22 +85,6 @@
|
|||||||
:config (dolist (mode '(dashboard-mode emacs-news-mode))
|
:config (dolist (mode '(dashboard-mode emacs-news-mode))
|
||||||
(add-to-list 'page-break-lines-modes mode)))
|
(add-to-list 'page-break-lines-modes mode)))
|
||||||
|
|
||||||
;; Transient
|
|
||||||
(when (childframe-workable-p)
|
|
||||||
;; Display transient in child frame
|
|
||||||
(use-package transient-posframe
|
|
||||||
:diminish
|
|
||||||
:defines posframe-border-width
|
|
||||||
:custom-face
|
|
||||||
(transient-posframe ((t (:inherit tooltip))))
|
|
||||||
(transient-posframe-border ((t (:inherit posframe-border :background unspecified))))
|
|
||||||
:hook (after-init . transient-posframe-mode)
|
|
||||||
:init (setq transient-mode-line-format nil
|
|
||||||
transient-posframe-border-width posframe-border-width
|
|
||||||
transient-posframe-poshandler 'posframe-poshandler-frame-center
|
|
||||||
transient-posframe-parameters '((left-fringe . 8)
|
|
||||||
(right-fringe . 8)))))
|
|
||||||
|
|
||||||
;; La línea bonita esa de abajo
|
;; La línea bonita esa de abajo
|
||||||
(use-package doom-modeline
|
(use-package doom-modeline
|
||||||
:init
|
:init
|
||||||
|
@ -29,25 +29,8 @@
|
|||||||
:init (setq which-key-max-description-length 30
|
:init (setq which-key-max-description-length 30
|
||||||
which-key-lighter nil
|
which-key-lighter nil
|
||||||
which-key-show-remaining-keys t)
|
which-key-show-remaining-keys t)
|
||||||
:autoload which-key-posframe-mode
|
|
||||||
:hook ( elpaca-after-init . which-key-mode))
|
:hook ( elpaca-after-init . which-key-mode))
|
||||||
|
|
||||||
;; Muestra which-key en un frame en el centro en lugar de abajo
|
|
||||||
(when (childframe-workable-p)
|
|
||||||
(use-package which-key-posframe
|
|
||||||
:diminish
|
|
||||||
:defines posframe-border-width
|
|
||||||
:functions posframe-poshandler-frame-center-near-bottom
|
|
||||||
:custom-face
|
|
||||||
(which-key-posframe ((t (:inherit tooltip))))
|
|
||||||
(which-key-posframe-border ((t (:inherit posframe-border :background unspecified))))
|
|
||||||
:init
|
|
||||||
(setq which-key-posframe-border-width posframe-border-width
|
|
||||||
which-key-posframe-poshandler #'posframe-poshandler-frame-center-near-bottom
|
|
||||||
which-key-posframe-parameters '((left-fringe . 8)
|
|
||||||
(right-fringe . 8)))
|
|
||||||
(which-key-posframe-mode 1)))
|
|
||||||
|
|
||||||
;; Process
|
;; Process
|
||||||
(use-package proced
|
(use-package proced
|
||||||
:ensure nil
|
:ensure nil
|
||||||
@ -71,9 +54,20 @@
|
|||||||
;; Restaurar el estado de los frames
|
;; Restaurar el estado de los frames
|
||||||
(use-package winner
|
(use-package winner
|
||||||
:ensure nil
|
:ensure nil
|
||||||
|
:bind (("s-u" . winner-undo)
|
||||||
|
("s-U" . winner-redo))
|
||||||
:config
|
:config
|
||||||
(winner-mode))
|
(winner-mode))
|
||||||
|
|
||||||
|
;; Moverme entre frames
|
||||||
|
(use-package windmove
|
||||||
|
:ensure nil
|
||||||
|
:bind (("s-K" . windmove-up)
|
||||||
|
("s-J" . windmove-down)
|
||||||
|
("s-H" . windmove-left)
|
||||||
|
("s-L" . windmove-right)
|
||||||
|
("s-O" . other-window)))
|
||||||
|
|
||||||
;; Terminal
|
;; Terminal
|
||||||
(use-package vterm
|
(use-package vterm
|
||||||
:config
|
:config
|
||||||
@ -149,23 +143,7 @@
|
|||||||
:defines posframe-border-width
|
:defines posframe-border-width
|
||||||
:functions childframe-workable-p
|
:functions childframe-workable-p
|
||||||
:hook (emacs-lisp-mode . hydra-add-imenu)
|
:hook (emacs-lisp-mode . hydra-add-imenu)
|
||||||
:init
|
)
|
||||||
(when (childframe-workable-p)
|
|
||||||
(setq hydra-hint-display-type 'posframe)
|
|
||||||
(with-no-warnings
|
|
||||||
(defun hydra-set-posframe-show-params ()
|
|
||||||
"Set hydra-posframe style."
|
|
||||||
(setq hydra-posframe-show-params
|
|
||||||
`(:left-fringe 8
|
|
||||||
:right-fringe 8
|
|
||||||
:internal-border-width ,posframe-border-width
|
|
||||||
:internal-border-color ,(face-background 'posframe-border nil t)
|
|
||||||
:background-color ,(face-background 'tooltip nil t)
|
|
||||||
:foreground-color ,(face-foreground 'tooltip nil t)
|
|
||||||
:lines-truncate t
|
|
||||||
:poshandler posframe-poshandler-frame-center)))
|
|
||||||
(hydra-set-posframe-show-params)
|
|
||||||
(add-hook 'after-load-theme-hook #'hydra-set-posframe-show-params t))))
|
|
||||||
|
|
||||||
;; Pretty-Hydra - Su nombre ya indica lo que hace
|
;; Pretty-Hydra - Su nombre ya indica lo que hace
|
||||||
(use-package pretty-hydra
|
(use-package pretty-hydra
|
||||||
@ -213,12 +191,13 @@
|
|||||||
"Highlight"
|
"Highlight"
|
||||||
(("l" global-hl-line-mode "line" :toggle t)
|
(("l" global-hl-line-mode "line" :toggle t)
|
||||||
("p" show-paren-mode "brackets pairs" :toggle t)
|
("p" show-paren-mode "brackets pairs" :toggle t)
|
||||||
|
("b" global-blamer-mode "Git blamer" :toggle t)
|
||||||
("r" rainbow-delimiters-mode "rainbow brackets" :toggle t)
|
("r" rainbow-delimiters-mode "rainbow brackets" :toggle t)
|
||||||
("w" global-display-fill-column-indicator-mode "fill column indicator" :toggle t)
|
("w" global-display-fill-column-indicator-mode "fill column indicator" :toggle t)
|
||||||
("t" global-hl-todo-mode "todo" :toggle t))
|
("t" global-hl-todo-mode "todo" :toggle t))
|
||||||
"Program"
|
"Program"
|
||||||
(("f" flymake-mode "flymake" :toggle t)
|
(("F" flymake-mode "flymake" :toggle t)
|
||||||
("c" flyspell-mode "spell check" :toggle t)
|
("f" flyspell-mode "spell check" :toggle t)
|
||||||
("u" subword-mode "subword" :toggle t)
|
("u" subword-mode "subword" :toggle t)
|
||||||
("v" global-diff-hl-mode "gutter" :toggle t)
|
("v" global-diff-hl-mode "gutter" :toggle t)
|
||||||
("V" diff-hl-flydiff-mode "live gutter" :toggle t)
|
("V" diff-hl-flydiff-mode "live gutter" :toggle t)
|
||||||
|
@ -13,6 +13,11 @@
|
|||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
;; Mostrar el commit de la línea actual
|
||||||
|
(use-package blamer
|
||||||
|
:ensure t
|
||||||
|
:bind ("C-c i" . blamer-show-posframe-commit-info))
|
||||||
|
|
||||||
;; Resolver diferencias entre 2 archivos o versiones del mismo.
|
;; Resolver diferencias entre 2 archivos o versiones del mismo.
|
||||||
(use-package ediff
|
(use-package ediff
|
||||||
:ensure nil
|
:ensure nil
|
||||||
@ -87,7 +92,9 @@
|
|||||||
(use-package license-templates)
|
(use-package license-templates)
|
||||||
|
|
||||||
;; Magia para git
|
;; Magia para git
|
||||||
(use-package magit)
|
(use-package magit
|
||||||
|
:config
|
||||||
|
(setq magit-diff-refine-hunk 'all))
|
||||||
|
|
||||||
;; Todolist en magit de todos los archivos del projecto.
|
;; Todolist en magit de todos los archivos del projecto.
|
||||||
(use-package magit-todos
|
(use-package magit-todos
|
||||||
|
@ -21,5 +21,31 @@
|
|||||||
:ensure (:host github :repo "moskalyovd/emacs-php-doc-block")
|
:ensure (:host github :repo "moskalyovd/emacs-php-doc-block")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
;; Consola REPL para php. Similar a "php -a" pero con extras
|
||||||
|
(use-package psysh)
|
||||||
|
|
||||||
|
;; Composer
|
||||||
|
(use-package composer)
|
||||||
|
|
||||||
|
;; PHPUnit
|
||||||
|
(use-package phpunit)
|
||||||
|
|
||||||
|
(use-package php-cs-fixer
|
||||||
|
:custom
|
||||||
|
(php-cs-fixer-rules-level-part-options (list (json-encode '(("@PSR12" . t)
|
||||||
|
("ordered_imports" . (("sort_algorithm" . "alpha")))
|
||||||
|
("concat_space" . (("spacing" . "one")))
|
||||||
|
("whitespace_after_comma_in_array" . t)
|
||||||
|
("align_multiline_comment" . t)
|
||||||
|
("no_unused_imports" . t)
|
||||||
|
("phpdoc_align" . t)
|
||||||
|
("phpdoc_indent" . t)
|
||||||
|
("no_useless_return" . t)
|
||||||
|
("return_assignment" . t)
|
||||||
|
("trailing_comma_in_multiline" . t)))))
|
||||||
|
(php-cs-fixer-rules-fixer-part-options '())
|
||||||
|
;; :hook (before-save . php-cs-fixer-before-save)
|
||||||
|
)
|
||||||
|
|
||||||
(provide 'lang-php)
|
(provide 'lang-php)
|
||||||
;;; lang-php.el ends here
|
;;; lang-php.el ends here
|
||||||
|
Reference in New Issue
Block a user