Сообщение Re[2]: { от 05.10.2016 21:06
Изменено 05.10.2016 21:08 Evgeny.Panasyuk
Здравствуйте, neFormal, Вы писали:
V>>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.
F>скобцам не понять.
F>меня напрягает скроллить код изза перенесённых скобок. уж лучше всё видеть на одном экране, а не ползать.
F>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.
Задачу устранения визуального мусора можно решить на стороне редактор. Например не показывать фигурные скобки, а также ;.
В Emacs это решается через оверлеи (сам код вообще не меняется, меняется только отображение):
Исходный вид:

Нажимаем F5:

https://www.youtube.com/watch?v=EHX7NZS8zAI
Этот код можно редактировать, но для полноценной поддержки редактирования нужно добавить отслеживание того, чтобы пользователь не мог случайно удалить скобки (они ведь есть на самом деле, как тот суслик), и чтобы гарантировалось их автоматическое расставленние. Под капотом можно использовать стиль который принят в проекте.
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 это решается через оверлеи (сам код вообще не меняется, меняется только отображение):
Исходный вид:

Нажимаем F5:

https://www.youtube.com/watch?v=EHX7NZS8zAI
Этот код можно редактировать, но для полноценной поддержки редактирования нужно добавить отслеживание того, чтобы пользователь не мог случайно удалить скобки (они ведь есть на самом деле, как тот суслик), и чтобы гарантировалось их автоматическое расставленние. Под капотом можно использовать стиль который принят в проекте.
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
Этот код можно редактировать, но для полноценной поддержки редактирования нужно добавить отслеживание того, чтобы пользователь не мог случайно удалить скобки (они ведь есть на самом деле, как тот суслик), и чтобы гарантировалось их автоматическое расставленние. Под капотом можно использовать стиль который принят в проекте.