Compare commits
19 Commits
7c4fea3b60
...
master
Author | SHA1 | Date | |
---|---|---|---|
eb14dff0cd | |||
58bb81edeb | |||
f689d2afe1 | |||
ed547bce34 | |||
bf2bf01252 | |||
6c39aee1d0 | |||
d1ddd81282 | |||
96b0ccf056 | |||
7289832288 | |||
03ee657182 | |||
0b6c2058ed | |||
d50d5228cf | |||
b0ebfce668 | |||
99c6b012e5 | |||
5ee6db55e0 | |||
709ca7fe27 | |||
a6b197b6a4 | |||
021e19fb3c | |||
56141976e9 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -36,3 +36,4 @@ workspace/
|
||||
/intelephense/
|
||||
/auto-save-list/
|
||||
/*.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
|
||||
'(
|
||||
("doc" "<!DOCTYPE html>
|
||||
@ -14,6 +14,34 @@
|
||||
("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
|
||||
'(
|
||||
("doc" "<!DOCTYPE html>
|
||||
@ -25,7 +53,7 @@
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
</html>" nil :count 9)
|
||||
("doctype" "<!DOCTYPE html>" nil :count 1)
|
||||
</html>" nil :count 10)
|
||||
("doctype" "<!DOCTYPE html>" nil :count 2)
|
||||
))
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; Esta configuración para Inteligencia artifical en emacs, principalmente para el uso de chats.
|
||||
;; Configuración para Inteligencia artifical en Emacs.
|
||||
|
||||
;;; Code:
|
||||
|
||||
@ -24,22 +24,33 @@
|
||||
;; "llava:latest"))
|
||||
gptel-default-mode 'org-mode
|
||||
gptel-prompt-prefix-alist
|
||||
'((markdown-mode . "# ")
|
||||
(org-mode . "* ")
|
||||
(text-mode . "# "))
|
||||
'((markdown-mode . "# User\n\n")
|
||||
(org-mode . "* User\n\n")
|
||||
(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
|
||||
'((default . "Eres un LLM que vive dentro de Emacs. Responde de manera concisa.")
|
||||
(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.")
|
||||
)
|
||||
'((default . "You are a large language model living in Emacs and a helpful assistant. Respond concisely in Spanish."))
|
||||
)
|
||||
)
|
||||
(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)
|
||||
;;; init-ai.el ends here
|
||||
|
@ -20,6 +20,9 @@
|
||||
(setq package-native-compile t)
|
||||
))
|
||||
|
||||
;; Custom configs file
|
||||
(setq custom-file (concat user-emacs-directory ".custom.el"))
|
||||
|
||||
;; Garbage Collector Magic Hack
|
||||
(use-package gcmh
|
||||
:diminish
|
||||
|
@ -66,20 +66,30 @@
|
||||
))
|
||||
)
|
||||
|
||||
|
||||
;; Set de funciones de para las sugerencias de corfu.
|
||||
(use-package cape
|
||||
:ensure (:host github :repo "minad/cape")
|
||||
: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)
|
||||
("C-c c l" . cape-line))
|
||||
:init
|
||||
(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-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-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-keyword) ;; Completar desde keyword del lenguaje.
|
||||
|
||||
|
@ -71,8 +71,7 @@
|
||||
:ensure nil
|
||||
:hook(;; show org ediffs unfolded
|
||||
(ediff-prepare-buffer . outline-show-all)
|
||||
;; restore window layout when done
|
||||
(ediff-quit . winner-undo))
|
||||
)
|
||||
:config
|
||||
(setq ediff-window-setup-function 'ediff-setup-windows-plain
|
||||
ediff-split-window-function 'split-window-horizontally
|
||||
@ -149,7 +148,19 @@
|
||||
(truncate-lines . nil)
|
||||
(which-func-mode . nil))))
|
||||
|
||||
;; Generador de texto aleatorio para placeholding
|
||||
(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)
|
||||
;;; init-editor.el ends here
|
||||
|
@ -102,7 +102,7 @@ If PROJECT is not specified, assume current project root."
|
||||
(rename-buffer new-name))))
|
||||
|
||||
;; Copiar el nombre del archivo actual
|
||||
(defun copy-file-name ()
|
||||
(defun copy-filename ()
|
||||
"Copy the current buffer file name to the clipboard."
|
||||
(interactive)
|
||||
(let ((filename (if (equal major-mode 'dired-mode)
|
||||
@ -114,6 +114,18 @@ If PROJECT is not specified, assume current project root."
|
||||
(message "Copied '%s'" filename))
|
||||
(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
|
||||
(defun childframe-workable-p ()
|
||||
"Whether childframe is workable."
|
||||
@ -127,12 +139,12 @@ If PROJECT is not specified, assume current project root."
|
||||
"Check if font with FONT-NAME is available."
|
||||
(find-font (font-spec :name font-name)))
|
||||
|
||||
(defun insert-full-filename ()
|
||||
(defun insert-filename ()
|
||||
"Insert the full path file name into the current buffer."
|
||||
(interactive)
|
||||
(insert (buffer-file-name)))
|
||||
|
||||
(defun insert-filename-only ()
|
||||
(defun insert-basename ()
|
||||
"Insert the filename (without path) into the current buffer."
|
||||
(interactive)
|
||||
(insert (file-name-nondirectory (buffer-file-name))))
|
||||
@ -151,5 +163,13 @@ If PROJECT is not specified, assume current project root."
|
||||
(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)
|
||||
;;; init-functions.el ends here.
|
||||
|
@ -30,16 +30,15 @@
|
||||
(global-set-key (kbd "C-x mp") 'php-ts-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
|
||||
(define-key global-map "\M-[" 'backward-paragraph)
|
||||
(define-key global-map "\M-]" 'forward-paragraph)
|
||||
|
||||
;; Insertar nombre del archivo
|
||||
(global-set-key (kbd "C-c ff") 'insert-full-filename)
|
||||
(global-set-key (kbd "C-c fo") 'insert-filename-only)
|
||||
(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
|
||||
(define-key minibuffer-inactive-mode-map [mouse-1] #'ignore)
|
||||
|
@ -85,17 +85,25 @@
|
||||
;; Revisar por errores en el código
|
||||
(use-package flymake
|
||||
:ensure nil
|
||||
:hook (prog-mode . (lambda ()
|
||||
(unless (derived-mode-p 'makefile-mode)
|
||||
(flymake-mode))))
|
||||
:config
|
||||
;; :hook (prog-mode . (lambda ()
|
||||
;; (unless (derived-mode-p 'makefile-mode)
|
||||
;; (flymake-mode))))
|
||||
:init
|
||||
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
|
||||
)
|
||||
|
||||
;; Mostar los errores de flymake en un popup-tip
|
||||
(use-package flymake-diagnostic-at-point
|
||||
:after flymake
|
||||
:hook (flymake-mode . flymake-diagnostic-at-point-mode))
|
||||
(use-package flycheck
|
||||
:init (global-flycheck-mode)
|
||||
:config
|
||||
(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)
|
||||
;;; init-lsp.el ends here
|
||||
|
@ -109,10 +109,10 @@
|
||||
;; UI para completado del minibuffer
|
||||
(use-package vertico
|
||||
:bind (:map vertico-map
|
||||
("RET" . vertico-directory-enter)
|
||||
("DEL" . vertico-directory-delete-char)
|
||||
("TAB" . minibuffer-complete)
|
||||
("M-DEL" . vertico-directory-delete-word))
|
||||
("RET" . vertico-directory-enter)
|
||||
("DEL" . vertico-directory-delete-char)
|
||||
("TAB" . minibuffer-complete)
|
||||
("M-DEL" . vertico-directory-delete-word))
|
||||
:hook ((elpaca-after-init . vertico-mode)
|
||||
(rfn-eshadow-update-overlay . vertico-directory-tidy))
|
||||
:config
|
||||
|
@ -181,5 +181,10 @@ Install the doc if it's not installed."
|
||||
:hook ((js-base-mode css-mode sgml-mode web-mode) . prettier-mode)
|
||||
:init (setq prettier-pre-warm 'none))
|
||||
|
||||
(use-package subword
|
||||
:ensure nil
|
||||
:init
|
||||
(global-subword-mode 1))
|
||||
|
||||
(provide 'init-prog)
|
||||
;;; init-prog.el ends here
|
||||
|
@ -54,9 +54,20 @@
|
||||
;; Restaurar el estado de los frames
|
||||
(use-package winner
|
||||
:ensure nil
|
||||
:bind (("s-u" . winner-undo)
|
||||
("s-U" . winner-redo))
|
||||
:config
|
||||
(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
|
||||
(use-package vterm
|
||||
:config
|
||||
@ -185,8 +196,8 @@
|
||||
("w" global-display-fill-column-indicator-mode "fill column indicator" :toggle t)
|
||||
("t" global-hl-todo-mode "todo" :toggle t))
|
||||
"Program"
|
||||
(("f" flymake-mode "flymake" :toggle t)
|
||||
("c" flyspell-mode "spell check" :toggle t)
|
||||
(("F" flymake-mode "flymake" :toggle t)
|
||||
("f" flyspell-mode "spell check" :toggle t)
|
||||
("u" subword-mode "subword" :toggle t)
|
||||
("v" global-diff-hl-mode "gutter" :toggle t)
|
||||
("V" diff-hl-flydiff-mode "live gutter" :toggle t)
|
||||
|
@ -21,5 +21,31 @@
|
||||
: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)
|
||||
;;; lang-php.el ends here
|
||||
|
Reference in New Issue
Block a user