2014-12-21 5 views
0

Когда я использую абзац lisp emacs, закрывающие скобки перемещаются вправо, оставляя большее пространство перед чем необходимо. это как выглядит код, А также, в моем коде во 2-й строке, он оставляет 2 символа, в 3-й строке он оставляет 4 символа ... в некоторых местах он отступил назад ...Выделение Emacs в режиме lisp

Примечание: пожалуйста, не пытайтесь расшифровать код, просто посмотреть, как плохо отступы выглядит ....

(defun tern-req (port doc c) 
    (let* 
     (
     (url-mime-charset-string nil) ; Suppress huge, useless header 
     (url-request-method "POST" 
       ) 
     (deactivate-mark nil 
      ) ; Prevents json-encode from interfering with shift-selection-mode 
     (url-request-data 
    (json-encode doc 
      ) 
      ) 
     (url-show-status nil) 
     (url (
     url-parse-make-urlobj "http" nil nil tern-server port "/" nil nil nil 
        ) 
     ) 
     ) 
    (url-http url #'tern-req-finished 
      (list c) 
     ) 
    ) 
) 

ответ

3

лисповские войны код форматирования практически не существует, потому что Emacs является общепринятым стандартом. Тем не менее, вы должны оставить закрывающие parens в одной строке. Пробел перед заключительным параном указывает, что это для большего блока, который начинался на предыдущей строке.

(defun tern-req (port doc c) 
    (let* ((url-mime-charset-string nil) ; Suppress huge, useless header 
     (url-request-method "POST") 
     ;; Prevent json-encode from interfering with shift-selection-mode 
     (deactivate-mark nil) 
     (url-request-data 
      (json-encode doc)) 
     (url-show-status nil) 
     (url 
      (url-parse-make-urlobj "http" nil nil tern-server port "/" nil nil nil))) 
    (url-http url #'tern-req-finished 
       (list c)))) 
+2

У вас есть ссылка на предмет пространства перед закрытием? Я никогда не слышал об этом раньше. –

+0

, но почему строка 3 занимает 4 пробела, тогда как строка 2 занимает всего 2 пробела? –

+0

space-before-close-paren очень полезен, потому что мой forward-sexp перемещал курсор на следующую закрывающую скобку, что побудило меня переместить закрывающие скобки на следующую строку ... теперь это решение чище. –