~w96k/dotfiles

864b0b5bfb54e005f509ecc9607cf74b9c158c1a — Mikhail Kirillov 4 days ago 6650241 master
Update emacs for php
1 files changed, 55 insertions(+), 57 deletions(-)

M emacs/.emacs.d/.emacs-config.org
M emacs/.emacs.d/.emacs-config.org => emacs/.emacs.d/.emacs-config.org +55 -57
@@ 152,7 152,8 @@ https://git.sr.ht/~w96k/dotfiles/tree/master/item/emacs
      ;; (package-install 'exec-path-from-shell)
      (package-install 'expand-region)
      ;; (package-install 'flymake-php)
      ;; (package-install 'flycheck)
      (package-install 'flycheck)
      (package-install 'flycheck-phpstan)
      ;; (package-install 'phpactor)
      ;;(package-install 'robe)
      (package-install 'geiser)


@@ 181,6 182,7 @@ https://git.sr.ht/~w96k/dotfiles/tree/master/item/emacs
      ;;(package-install 'php-eldoc)
      ;;(package-install 'phps-mode)
      (package-install 'realgud)
      (package-install 'realgud-xdebug)
      ;; (package-install 'kiwix)
      ;;(package-install 'sml-mode)
      (package-install 'sly)


@@ 201,12 203,13 @@ https://git.sr.ht/~w96k/dotfiles/tree/master/item/emacs
      ;; (package-install 'isearch-mb)
      (package-install 'visual-fill-column)
      ;; (package-install 'browse-kill-ring)
      ;; (package-install 'corfu)
      (package-install 'corfu)
      ;; (package-install 'inf-ruby)
      (package-install 'yaml-mode)
      ;; (package-install 'geben)
      (package-install 'link-hint)
      (package-install 'whole-line-or-region)
      (package-install 'quickrun)
      ;; (package-install 'psysh)
      ;; (package-install 'restclient)
      ))


@@ 256,17 259,8 @@ JIT компиляция elisp кода в машинный
шрифтов по количеству доступных символов после Unifont. Unifont я не
стал использовать, потому что иксы замыливают этот пиксельный шрифт, что
делает его использование крайне неприятным.
#+begin_src emacs-lisp :tangle nil
  ;; Do not resize the frame at this early stage.
  (setq frame-inhibit-implied-resize t)
  (setq use-dialog-box nil)

  ;;; Disable some gui
  (scroll-bar-mode -1)
  (tool-bar-mode -1)
  (menu-bar-mode -1)
  ;;(tooltip-mode -1)

#+begin_src emacs-lisp :tangle early-init.el
  ;; Change mode-line-modes to show only major mode
  (defvar mode-line-major-mode
    (let ((recursive-edit-help-echo "Recursive edit, type C-M-c to get out"))


@@ 311,6 305,19 @@ JIT компиляция elisp кода в машинный
		  mode-line-position
		  mode-line-end-spaces
		  ))
#+end_src


#+begin_src emacs-lisp :tangle nil
  ;; Do not resize the frame at this early stage.
  (setq frame-inhibit-implied-resize t)
  (setq use-dialog-box nil)

  ;;; Disable some gui
  (scroll-bar-mode -1)
  (tool-bar-mode -1)
  (menu-bar-mode -1)
  ;;(tooltip-mode -1)

  ;;; Changing emacs default setting through customize
  (custom-set-variables


@@ 796,14 803,19 @@ I use built-in project.el

** Дополнение
** Дебаггер
#+begin_src emacs-lisp :tangle nil
#+begin_src emacs-lisp :tangle init.el
  (when (package-loaded? "realgud")
    (load "~/.emacs.d/site-lisp/realgud-xdebug/realgud-xdebug.el"))
#+end_src

#+begin_src emacs-lisp :tangle init.el
  (when (package-loaded? "geben")
    (setq geben-dbgp-default-port 9003))
#+end_src

*** Автодополнение кода и документация
По большей части я использую дефолтный Completion Buffer и Corfu
#+begin_src elisp :tangle nil
#+begin_src elisp :tangle init.el
  (when (package-loaded? "corfu")
    (progn
      (setq corfu-preview-current 'nil


@@ 954,6 966,15 @@ I use built-in project.el
#+end_src

** Линтеры
#+begin_src emacs-lisp :tangle init.el
  (defun my-php-mode-setup ()
    "My PHP-mode hook."
    (require 'flycheck-phpstan)
    (flycheck-mode t))

  (add-hook 'php-mode-hook 'my-php-mode-setup)
#+end_src

#+BEGIN_SRC emacs-lisp :tangle nil
  ;; (add-hook 'php-mode-hook 'flymake-php-load)
   ;; (add-hook 'php-mode-hook 'flymake-phpstan-turn-on)


@@ 1032,6 1053,13 @@ Sudo-edit
  (add-hook 'prog-mode-hook 'rmsbolt-mode)
#+end_src

** Быстрый запуск программы
#+begin_src emacs-lisp
  (when (package-loaded? "quickrun")
    (define-key global-map (kbd "C-c C-c") 'quickrun))
#+end_src


* Языки программирования
** Common Lisp
*** REPL


@@ 1095,73 1123,41 @@ Sudo-edit
*** PHP-Mode
Необходимо скачать и распаковать мануал PHP (в формате html) в
директорию ~~/.emacs.d/php-manual/~.
#+begin_src emacs-lisp :tangle nil
#+begin_src emacs-lisp :tangle init.el
  ;; (add-to-list 'load-path "~/.emacs.d/site-lisp/realgud-xdebug/")
  ;; (require 'realgud-xdebug)

  (defun init-php-mode ()
    (eglot-ensure))
  ;; (defun init-php-mode ()
  ;;   (eglot-ensure))

  (with-eval-after-load 'php-mode
    (custom-set-variables '(lsp-phpactor-path "/home/w96k/projects/phpactor"))
    (custom-set-variables '(lsp-phpactor-path "/home/w96k/php/phpactor"))
    ;; (add-hook 'php-mode-hook #'init-php-mode)
    )

  (when (package-loaded? "transient")
    (progn
      (transient-define-prefix
	php ()
	"Php"
	[["Class"
	  ("cc" "Copy" phpactor-copy-class)
	  ("cn" "New" phpactor-create-new-class)
	  ("cr" "Move" phpactor-move-class)
	  ("ci" "Inflect" phpactor-inflect-class)
	  ("n"  "Namespace" phpactor-fix-namespace)]
	 ["Properties"
	  ("a"  "Accessor" phpactor-generate-accessors)
	  ("pc" "Constructor" phpactor-complete-constructor)
	  ("pm" "Add missing props" phpactor-complete-properties)
	  ("r" "Rename var locally" phpactor-rename-variable-local)
	  ("R" "Rename var in file" phpactor-rename-variable-file)]
	 ["Extract"
	  ("ec" "constant" phpactor-extract-constant)
	  ("ee" "expression" phpactor-extract-expression)
	  ("em"  "method" phpactor-extract-method)]
	 ["Methods"
	  ("i" "Implement Contracts" phpactor-implement-contracts)
	  ("m"  "Generate method" phpactor-generate-method)]
	 ["Navigate"
	  ("x" "List refs" phpactor-list-references)
	  ("X" "Replace refs" phpactor-replace-references)
	  ("."  "Goto def" phpactor-goto-definition)]
	 ["Phpactor"
	  ("s" "Status" phpactor-status)
	  ("u" "Install" phpactor-install-or-update)]])))

  (when (package-loaded? "php-mode")
    (progn
      (add-hook 'php-mode-hook 'php-enable-symfony2-coding-style)
      (setq lsp-intelephense-php-version "8.1.6")
      (setq lsp-intelephense-php-version "8.1.16")
      (defvar phpactor-executable "~/.local/bin/phpactor")
      (custom-set-variables '(lsp-phpactor-path "~/.local/bin/phpactor"))
      (custom-set-variables '(lsp-phpactor-path "~/usr/local/bin/phpactor"))

      (add-hook 'php-mode-hook 
		'(lambda ()
		   (require 'yasnippet)
		   (require 'yasnippet-snippets)
		   ;; (require 'yasnippet)
		   ;; (require 'yasnippet-snippets)

		   (set-fill-column 120)

		   ;; (make-local-variable 'eldoc-documentation-function)
		   ;; (setq eldoc-documentation-function
		   ;;       'phpactor-hover)
		   (yas-minor-mode t)
		   ;; (yas-minor-mode t)
		   (define-key php-mode-map (kbd "C-c h") 'php-quickhelp-at-point)))

      (setq php-manual-path
	    "~/.emacs.d/php-manual/"
	    php-quickhelp-dir "~/.emacs.d/php-manual/"
	    "~/php/php-manual/"
	    php-quickhelp-dir "~/php/php-manual/"
	    php-quickhelp--dest "~/.emacs.d/php-manual/php_manual_en.json")




@@ 1641,6 1637,8 @@ The main way to interact with SQL is using org-mode

** Браузер
#+begin_src emacs-lisp :tangle init.el
  (setq browse-url-browser-function #'eww-browse-url)

  (add-hook 'eww-mode-hook
	    (lambda ()
	      (set-fill-column 80)