Skip to content

Strange flicker when decorating docblocks #622

Open
@sergeyklay

Description

@sergeyklay

There is an annoying flicker when php-mode decorates docblock I'd like avoid to. Is there any fix/workaround for this?

Take a look at class' docblock (array word) as well as method' docblock.

php-mode-font-lock-issue

Used config:

(defun my|common-php-hook ()
  "The hook to configure `php-mode'."
  (eval-when-compile (require 'flycheck nil t))
  (when (file-exists-p "~/.composer/vendor/bin/phpcs")
    (setq-local flycheck-php-phpcs-executable "~/.composer/vendor/bin/phpcs"))

  ;; Coding style
  (setq-local flycheck-phpcs-standard "PSR2")
  (setq-local php-project-coding-style 'psr2)

  ;; Fill, indents
  (setq-local fill-column 120)
  (setq-local indent-tabs-mode nil)

  (when (eq 0 (buffer-size))
    (insert "<?php\n\n")))

(use-package phpt-mode
  :defer t
  :init
  (add-hook 'phpt-mode-hook #'(lambda () (flycheck-mode -1))))

(use-package php-mode
  :defer t
  :hook
  ((php-mode . subword-mode)
   (php-mode . flycheck-mode)
   (php-mode . yas-minor-mode)
   (php-mode . my|common-php-hook)
   (php-mode . php-enable-symfony2-coding-style))
  :config
  (setq php-mode-coding-style 'psr2)
  (when (file-directory-p "/usr/local/share/php/doc/html")
    (setq php-manual-path "/usr/local/share/php/doc/html"))
  :bind
  (:map php-mode-map
        ("C-c C--" . #'php-current-class)
        ("C-c C-=" . #'php-current-namespace)))

--- PHP-MODE DEBUG BEGIN ---
versions: GNU Emacs 27.0.90 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.5, cairo version 1.16.0)
 of 2020-04-01; PHP Mode 1.22.2; Cc Mode 5.34.1)
package-version: nil
major-mode: php-mode
minor-modes: (helm-mode helm--remap-mouse-mode shell-dirtrack-mode recentf-mode subword-mode projectile-mode company-statistics-mode eros-mode display-fill-column-indicator-mode outline-minor-mode show-paren-mode winner-mode diff-hl-flydiff-mode diff-hl-mode flycheck-mode save-place-mode electric-pair-mode yas-minor-mode company-mode async-bytecomp-package-mode savehist-mode which-key-mode tooltip-mode electric-indent-mode mouse-wheel-mode menu-bar-mode file-name-shadow-mode font-lock-mode blink-cursor-mode auto-composition-mode auto-encryption-mode auto-compression-mode column-number-mode line-number-mode visual-line-mode transient-mark-mode abbrev-mode)
variables: ((indent-tabs-mode nil) (tab-width 8))
custom variables: ((php-executable /home/klay/.phpenv/shims/php) (php-site-url https://php.net/) (php-manual-url en) (php-search-url nil) (php-class-suffix-when-insert ::) (php-namespace-suffix-when-insert \) (php-default-major-mode php-mode) (php-html-template-major-mode web-mode) (php-blade-template-major-mode web-mode) (php-template-mode-alist ((\.blade . web-mode) (\.phpt\' . phpt-mode) (\.phtml\' . web-mode))) (php-mode-maybe-hook nil) (php-default-builtin-web-server-port 3939) (php-re-detect-html-tag php-re-detect-html-tag-default) (php-search-documentation-browser-function nil))
c-indentation-style: symfony2
c-style-variables: ((c-basic-offset 4) (c-comment-only-line-offset 0) (c-indent-comment-alist ((anchored-comment column . 0) (end-block space . 1) (cpp-end-block space . 2))) (c-indent-comments-syntactically-p t) (c-block-comment-prefix * ) (c-comment-prefix-regexp ((pike-mode . //+!?\|\**) (awk-mode . #+) (other . //+\|\**))) (c-cleanup-list (scope-operator)) (c-hanging-braces-alist ((brace-list-open) (brace-entry-open) (statement-cont) (substatement-open after) (block-close . c-snug-do-while) (extern-lang-open after) (namespace-open after) (module-open after) (composition-open after) (inexpr-class-open after) (inexpr-class-close before) (arglist-cont-nonempty))) (c-hanging-colons-alist nil) (c-hanging-semi&comma-criteria (c-semi&comma-inside-parenlist)) (c-backslash-column 48) (c-backslash-max-column 72) (c-special-indent-hook nil) (c-label-minimum-indentation 1))
c-doc-comment-style: ((java-mode . javadoc) (pike-mode . autodoc) (c-mode . gtkdoc) (c++-mode . gtkdoc))
c-offsets-alist: ((inexpr-class . 0) (inexpr-statement . +) (lambda-intro-cont . +) (inlambda . 0) (template-args-cont c-lineup-template-args +) (incomposition . +) (inmodule . +) (innamespace . +) (inextern-lang . +) (composition-close . 0) (module-close . 0) (namespace-close . 0) (extern-lang-close . 0) (composition-open . 0) (module-open . 0) (namespace-open . 0) (extern-lang-open . 0) (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call +) (objc-method-args-cont . c-lineup-ObjC-method-args) (objc-method-intro . [0]) (friend . 0) (cpp-define-intro c-lineup-cpp-define +) (cpp-macro-cont . +) (cpp-macro . [0]) (inclass . +) (stream-op . c-lineup-streamop) (arglist-cont-nonempty first php-lineup-cascaded-calls php-c-lineup-arglist) (arglist-cont first php-lineup-cascaded-calls 0) (comment-intro . 0) (catch-clause . 0) (else-clause . 0) (do-while-closure . 0) (access-label . -) (case-label . +) (substatement . +) (statement-case-intro . +) (statement . 0) (brace-entry-open . 0) (brace-list-entry . 0) (brace-list-close . 0) (block-close . 0) (block-open . 0) (inher-cont . c-lineup-multi-inher) (inher-intro . +) (member-init-cont . c-lineup-multi-inher) (member-init-intro . +) (annotation-var-cont . +) (annotation-top-cont . 0) (topmost-intro . 0) (knr-argdecl . 0) (func-decl-cont . +) (inline-close . 0) (class-close . 0) (class-open . 0) (defun-block-intro . +) (defun-close . 0) (defun-open . 0) (c . c-lineup-C-comments) (string . c-lineup-dont-change) (topmost-intro-cont first php-lineup-cascaded-calls +) (brace-list-intro . +) (brace-list-open . 0) (inline-open . 0) (arglist-close . php-lineup-arglist-close) (arglist-intro . php-lineup-arglist-intro) (statement-cont . php-lineup-hanging-semicolon) (statement-case-open . 0) (label . +) (substatement-label . 2) (substatement-open . 0) (knr-argdecl-intro . +) (statement-block-intro . +))
buffer: (:length 160)
--- PHP-MODE DEBUG END ---

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions