Изменение форматирования Paredit

JavaScript нетипизирован, что означает, что мы можем передавать и использовать данные, объекты и функции без ограничений. Мы можем написать код, который вызывает методы, которые не существуют для объекта, или ссылочные переменные, которых у нас нет. Подобные ошибки могут быть трудно обнаружить, когда вы пишете код, и это может привести к нестабильному и глючному коду. Внесение больших изменений в ваш код может стать трудным и рискованным, поскольку вы не сразу видите, конфликтуют ли некоторые изменения с остальным кодом где-то еще.

TypeScript в основном о добавлении типов в JavaScript. Это означает, что TypeScript требует от вас точного описания формата ваших объектов и ваших данных. Когда вы делаете это, это означает, что компилятор может исследовать ваш код и обнаружить ошибки. Он может видеть, что вы пытаетесь вызвать функцию с неправильными типами аргументов или ссылаетесь на переменную, которая недоступна в текущей области.

Когда вы пишете TypeScript самостоятельно, это формальное описание кода является частью самого кода.

Однако, когда вы используете внешние библиотеки, такие как jQuery или moment.js, информация о типах в этом коде отсутствует. Таким образом, чтобы использовать его с TypeScript, вы также должны получить файлы, которые описывают типы этого кода. Это файлы объявлений типа , чаще всего с расширением имени файла .d.ts. К счастью, люди написали такие файлы объявлений типов для большинства распространенных библиотек JavaScript.

Набор текста был просто инструментом для установки этих файлов. В настоящее время лучше всего использовать npm .

Когда вы установите эти файлы, что в основном означает их загрузку и размещение в вашем проекте, компилятор TypeScript поймет * этот внешний код и вы сможете использовать эти библиотеки. В противном случае вы бы везде получали ошибки.

* В зависимости от того, как вы настроили свой проект и настроили его, вам, возможно, придется настроить машинописный текст, чтобы искать эти файлы специально, или он может просто работать без какой-либо настройки с вашей стороны.

10
задан Török Gábor 27 May 2009 в 07:19
поделиться

2 ответа

Что ж, похоже, что paredit работает так: он проверяет таблицы синтаксиса, чтобы увидеть, вставляете ли вы пару сразу после слова / символа / и т. Д., И в этом случае он заставляет место для вставки. Вам нужно переопределить эту функциональность - что можно сделать несколькими разными способами: советом, переопределением пространства определения функции, изменением таблицы синтаксиса и т. Д.

Я бы попробовал прямо:

(defun paredit-space-for-delimiter-p (endp delimiter)
  (and (not (if endp (eobp) (bobp)))
       (memq (char-syntax (if endp (char-after) (char-before)))
             (list ?\"  ;; REMOVED ?w ?_
                   (let ((matching (matching-paren delimiter)))
                     (and matching (char-syntax matching)))))))

Это, очевидно, применимо во все места, где вы используете paredit . Если вам нужно что-то более специфичное для режима, вы можете добавить некоторые условия к этому оператору и (например, (и ... (memq major-mode '(c-mode lisp-mode))) ).

Итак ... Думаю, я действительно изменил "источник", но вы можете сделать то же самое с помощью defadvice ... это все elisp, так что разница минимальная. Похоже, что нет настройки для управления этим типом поведения.

12
ответ дан 3 December 2019 в 18:35
поделиться

Ну, Paredit идеально подходит для редактирования языков, построенных на S -выражения. Если вам просто нравится, как он автоматически вставляет закрывающую скобку, используйте функцию пара скелетов .

(setq skeleton-pair t)
(global-set-key "(" 'skeleton-pair-insert-maybe)
4
ответ дан 3 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: