Информация об изменениях

Сообщение Re[2]: { от 05.10.2016 21:06

Изменено 05.10.2016 21:08 Evgeny.Panasyuk

Здравствуйте, neFormal, Вы писали:

V>>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.

F>скобцам не понять.
F>меня напрягает скроллить код изза перенесённых скобок. уж лучше всё видеть на одном экране, а не ползать.
F>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.

Задачу устранения визуального мусора можно решить на стороне редактор. Например не показывать фигурные скобки, а также ;.
В Emacs это решается через оверлеи (сам код вообще не меняется, меняется только отображение):
(defun my/hide-regexp (r x)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward r nil t)
      (let ((o (make-overlay (match-beginning 1) (match-end 1))))
        (overlay-put o 'invisible t)
        (when x
          (overlay-put o 'display x))))))

(defun my/hide-stuff ()
  (interactive)
  (my/hide-regexp "\\(;\\)\n" nil)
  (my/hide-regexp "\\(\n\s*{\n\\)" ":\n")
  (my/hide-regexp "\\(^\s*}\s*;?\s*\\)\n" nil))

(bind-key "<f5>" 'my/hide-stuff)

Исходный вид:


Нажимаем F5:


https://www.youtube.com/watch?v=EHX7NZS8zAI

Этот код можно редактировать, но для полноценной поддержки редактирования нужно добавить отслеживание того, чтобы пользователь не мог случайно удалить скобки (они ведь есть на самом деле, как тот суслик), и чтобы гарантировалось их автоматическое расставленние. Под капотом можно использовать стиль который принят в проекте.
Re[2]: {
Здравствуйте, neFormal, Вы писали:

V>>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.

F>скобцам не понять.
F>меня напрягает скроллить код изза перенесённых скобок. уж лучше всё видеть на одном экране, а не ползать.
F>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.

Задачу устранения визуального мусора можно решить на стороне редактора. Например не показывать фигурные скобки, а также ;.
В Emacs это решается через оверлеи (сам код вообще не меняется, меняется только отображение):
(defun my/hide-regexp (r x)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward r nil t)
      (let ((o (make-overlay (match-beginning 1) (match-end 1))))
        (overlay-put o 'invisible t)
        (when x
          (overlay-put o 'display x))))))

(defun my/hide-stuff ()
  (interactive)
  (my/hide-regexp "\\(;\\)\n" nil)
  (my/hide-regexp "\\(\n\s*{\n\\)" ":\n")
  (my/hide-regexp "\\(^\s*}\s*;?\s*\\)\n" nil))

(bind-key "<f5>" 'my/hide-stuff)

Исходный вид:


Нажимаем F5:


https://www.youtube.com/watch?v=EHX7NZS8zAI

Этот код можно редактировать, но для полноценной поддержки редактирования нужно добавить отслеживание того, чтобы пользователь не мог случайно удалить скобки (они ведь есть на самом деле, как тот суслик), и чтобы гарантировалось их автоматическое расставленние. Под капотом можно использовать стиль который принят в проекте.