PureBasic

Особенности редактирования

Среда разработки PureBasic в отношении базовых возможностей редактирования действует как любой другой Редактор Текста. Для перемещения по коду воспользуйтесь клавишами курсора, а также клавишами Page Up/Page Down, Home и End. Ctrl+Home перемещает к началу файла, а Ctrl+End к концу.

При редактировании можно использовать горячие клавиши по умолчанию Ctrl+C (скопировать), Ctrl+X (вырезать) и Ctrl+V (вставить). Клавиша "Insert" контролирует, вставляется текст или пишется поверх. Клавиша Delete выполняет удаление в направлении вперёд. Удерживание клавиши Shift и использование клавиш со стрелками выделяет текст.

Помимо всего этого, среда разработки предоставляет много возможностей редактирования, специфичных для программирования или PureBasic.

Добавление отступа:

Когда вы нажимаете ввод, отступ (количество пробелов/табуляций в начале строки) текущей и следующей строки автоматически корректируются в зависимости от ключевых слов находящихся в этих строках. Также предусмотрен "режим блока" ("block mode"), при котором новая строка просто получает тот же отступ, что и предыдущая. Детали этой возможности можно настроить в Настройках IDE.

Символы табуляции:

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

Вместо этого вставляется два пробела. Это поведение можно изменить в Настройках. Дальнейшие сведения смотрите в разделе Настройка IDE.

Специальное поведение клавиши Tab:

Если клавиша Tab нажимается, когда не выделено ничего, или выделены только несколько символов, клавиша Tab действует как упомянуто выше (вставляет определённое количество пробелов, или настоящий символ табуляции, если так настроено).

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

Выделение нескольких строк текста и нажатие Shift+Tab меняет это поведение на противоположное. Удаляются пробелы/табуляции в начале каждой строки, чтобы уменьшить отступ всего блока.

Выравнивание комментариев:

Для изменения размера отступа комментариев в выбранном блоке кода, можно использовать сочетания клавиш Ctrl+E и Ctrl+Shift+E (CMD+E и CMD+Shift+E на OSX), что позволяет выровнять комментарии и сделать код более читаемым. Используемая кнопка может быть настроена в Настройках IDE.

Выделение блоков кода:

Сочетание клавиш Ctrl+M (CMD+M на OSX) может использоваться, чтобы выделить блок кода, который содержит позицию курсора (т.е. окружающий курсор блок кода типа: If...EndIf, For...Next или Procedure, со всеми командами внутри). Повторное нажатие Ctrl+M выделяет внешние блоки кода, окружающие уже выделенный, и так далее.

Сочетание клавиш Ctrl+Shift+M (CMD+Shift+M на OSX) инвертирует поведение и возвращается выбор к блоку, который был выбран перед последним использованием сочетание клавиш Ctrl+M.

Используемые сочетание клавиш могут быть сконфигурированы в Настройках IDE.

Двойной клик на исходном тексте:

Двойной щелчок по слову обычно выделяет целое слово. Однако, в некоторых случаях у двойного щелчка есть особое значение:

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

При двойном клике по оператору IncludeFile или XincludeFile, IDE попытается открыть этот файл. (Это возможно только если включаемый файл написан как строковый литерал, а не посредством например константы.)

В том же духе, если вы сделаете двойной клик на операторе IncludeBinary , IDE попытается показать этот файл во внутреннем средстве просмотра файла.

Выделение парных Скобок и Ключевых слов:

Когда курсор стоит на открывающей или закрывающей скобке, среда разработки подсвечивает другую скобку, парную к этой. Если парную скобку найти невозможно (что является синтаксической ошибкой в PureBasic), среда разработки подсвечивает текущую скобку красным. Тот же принцип применим и к ключевым словам. Если курсор стоит на Ключевом слове, таком как "If", среда разработки подчёркивает это ключевое слово и все ключевые слова, относящиеся к нему, такие как "Else" или "EndIf". Если имеет место несогласованность ключевых слов, оно подчёркивается красным. Пункт меню "Перейти на парное Ключевое слово" ("Goto matching Keyword"), описанный ниже, можно использовать для быстрого перемещения между парными ключевыми словами.

Обнаружение парных скобок и ключевых слов можно настроить в Настройках IDE.

Справка команды в строке состояния:

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

Опции свёртывания:

Встретив специальные ключевые слова (по умолчанию Procedure / EndProcedure (можно добавить и другие)), IDE помечает область между этими ключевыми словами слева, рядом с Номерами строк, символами [-] в начальной точке и последующей вертикальной линией до конечной точки.

Кликнув на [-], вы можете скрыть ("свернуть") эту секцию исходного кода, чтобы обеспечить лучший обзор больших исходных файлов. Значок [-] превратится в [+]. Если кликнуть ещё раз, код будет показан ("развёрнут") снова.

Примечание: Несмотря на то, что состояние этих свёрнутых строк запоминается, когда вы сохраняете/снова открываете файл, создаваемый файл с кодом всегда содержит все строки. Это влияет только на отображение кода в среде разработки, но не на сам код.

Другое по умолчанию сворачивающее ключевое слово это ";{" и ";}". Поскольку ";" отмечает комментарий в PB, они полностью игнорируются компилятором. Однако они обеспечивают возможность размещать произвольные точки свёртывания, которые не соответствуют какому-либо ключевому слову PB.

Авто-завершение:

Для того чтобы вам не приходилось запоминать точное название каждой команды, предусмотрена возможность Авто-Завершения.

Как только вы наберёте начало команды, отображается список возможных совпадений с началом слова, которое вы только что набрали. Список вариантов также отображается если вы набрали структурную переменную или интерфейс и следом сразу "\".

Здесь вы можете выбрать одно из этих слов с помощью клавиш вверх/вниз и вставить его в позиции, где находитесь, нажатием клавиши Tab. Также вы можете продолжать набирать при открытом списке. Он выберет первое совпадение, всё ещё возможное после того, что вы набрали, и закроется автоматически, когда или вы наберёте точное совпадение, или возможных совпадений в списке больше не останется.

Эскейп закроет список Авто-Завершения в любой момент. Также список закроется если вы кликнете мышью где угодно внутри среды разработки (IDE).

Примечание: Вы можете настроить, что отображается в списке Авто-Завершения, а также отключить его автоматический показ (чтобы открыть список, потребуется сочетание клавиш вроде Ctrl+Space) в Настройках. Дальнейшие сведения смотрите в параграфе Авто-завершение раздела Настройки IDE.

Боковая Панель Инструментов :

Многие инструменты для упрощения перемещения по исходникам и редактирования исходников можно добавить на Панель Инструментов сбоку окна редактирования. Обзор их и как их настраивать смотрите в разделе Встроенные Инструменты.

Меню Редактировать (Edit):

Ниже следует объяснение пунктов в меню Редактировать (Edit). Учтите, что многие пункты меню Редактировать (Edit) также доступны по правому клику на исходном коде, который открывает контекстное меню.

Отменить (Undo)
Отменяет последнее сделанное действие в области редактирования исходного кода. Есть буфер для запоминания изменений кода, таким образом, могут быть отменены несколько действий.

Вернуть (Redo)
Восстановите последнее действие, отмененное функцией отмены.

Вырезать (Cut)
Скопировать выбранную часть исходного кода и удалить её из кода.

Копировать (Copy)
Скопировать выбранный текст в Буфер обмена, не удаляя его из кода.

Вставить (Paste)
Вставить содержимое Буфера обмена в текущую позицию в коде. Если какой-либо текст был перед этим выбран, он будет удалён и заменён содержимым Буфера обмена.

Комментировать (Insert comments)
Вставляет комментарий (";") перед каждой строкой выбранного блока кода. Делает комментирование больших блоков кода проще, чем вставка символа ; перед каждой строкой вручную.

Убрать комментарии (Remove comments)
Удаляет символы комментария из начала каждой выбранной строки. Обращает команду "Вставить комментарии" ("Insert comments"), но также работает на комментариях, которые были расставлены вручную.

Форматировать код (Format indentation)
Переформатирует отступы выбранных строк, чтобы они были выравнены по коду над ними и отражали ключевые слова, которые содержат. Правила отступов можно указать в Настройках IDE.

Выделить всё (Select all), Выбирает исходный код целиком.

Перейти к позиции (Goto)
Позволяет вам перепрыгнуть к конкретной строке в вашем исходном коде.

Переход на парное ключевое слово (Goto matching Keyword)
Если курсор в данный момент стоит на ключевом слове вроде "If", эта опция меню перепрыгивает прямо к ключевому слову, парному к нему (в этом случае "EndIf").

Вернуться (Goto recent line)
IDE отслеживает строки, которые вы просматриваете. Например, если вы переключитесь на другую строку с помощью вышеупомянутой функции Перейти к позиции (Goto), или с помощью инструмента Просмотр Процедур. С помощью этой опции меню вы можете перепрыгнуть обратно к предыдущей позиции. Запоминаются 20 таких бывших позиций курсора.

Обратите внимание на то, что так запоминаются только большие прыжки в коде. А не те, когда вы просто сдвинетесь на несколько строк вверх/вниз клавишами курсора.

Свернуть выбранную вкладку (Toggle current fold)
Открывает/закрывает точку свёртывания, в которой курсор в данный момент находится.

Свернуть все вкладки (Toggle all Folds)
Открывает/закрывает все точки свёртывания в текущем исходнике. Очень полезно, чтобы например скрыть все процедуры в коде. Или чтобы быстро увидеть весь код снова, когда часть кода свёрнута.

Установить/Снять Маркер (Add/Remove Marker)
Маркеры действуют как Закладки в исходном коде. Их присутствие обозначается маленькой стрелочкой возле Номеров строк. Впоследствии вы можете перепрыгнуть к этим меткам с помощью команды "Следующий маркер" ("Jump to marker").

"Установить/Снять Маркер" ставит или удаляет маркер в текущей редактируемой вами строке.

Примечание: Также вы можете ставить/удалять маркеры удерживая клавишу Ctrl и кликнув на полосе, содержащей маркер. (не на той части, где Номера строк)

Следующий маркер (Jump to Marker)
Заставляет курсор перепрыгнуть к следующей позиции с меткой дальше вниз по коду от текущей позиции курсора. Если после позиции курсора меток нет, он перепрыгнет к первой метке в исходном коде. Так что нажав сочетание клавиш для "Следующий маркер" ("Jump to Marker") (по умолчанию F2) несколько раз, вы можете перепрыгивать по всем маркерам в коде.

Снять все Маркеры (Clear Markers) Удаляет все маркеры из текущего исходного кода.

Найти/Заменить (Find/Replace)

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

Кнопка "Найти Следующее" ("Find Next") начинает поиск. После найденного совпадения поиск можно продолжить с помощью команды меню Найти Следующее (Find Next). (по умолчанию F3).

Вы можете сделать поиск более конкретным, включив один из флажков:
С Учётом Регистра (Case Sensitive) : Будет найден только текст, который повторяет регистр искомого слова.
Только целые слова (Whole Words only) : Искать данное слово как целое слово. Не отображать результаты, где искомое слово часть другого слова.
Не искать в Комментариях (Don't search in Comments) : Любое совпадение, найденное внутри комментариев, игнорируется.
Не искать в Строках (Don't search in Strings) : Любое совпадение, найденное внутри строкового литерала (в " "), игнорируется.
Искать только в выделенном (Search inside Selection only) : Ищет только в выделенном участке кода. Это очень полезно вместе с кнопкой "Заменить Всё" ("Replace All"), в этом случае заменятся все найденные совпадения, но только внутри выделенного участка.

Включив флажок "Заменить на" ("Replace with"), вы перейдёте в режим замены. "Найти Следующее" ("Find Next") по прежнему будет искать, но при каждом клике на кнопке "Заменить" ("Replace"), следующее совпадение искомого слова будет заменяться на содержимое строки ввода "Заменить на" ("Replace with").

При клике на "Заменить Всё" ("Replace All") заменяются все совпадения от текущей позиции далее вниз (если только не задана опция "Искать только в выделенном" ("Search inside Selection only")).

Найти следующий (Find Next)
Продолжает последний поиск, запущенный в диалоге Найти/Заменить, до следующего совпадения.

Найти предыдущий (Find Previous)
Продолжает последний поиск, запущенный в диалоге Найти/Заменить, до предыдущего совпадения.

Найти в файле (Find in Files)

Диалог Найти в Файле (Find in Files) позволяет вам выполнять поиск во множестве файлов в конкретной директории.

Вы должны указать искомое слово, а также базовую директорию ("корневую директорию") в которой начинать. Вы можете настроить в каких файлах искать, указав фильтры расширений. Можно задать любое количество фильтров расширений, разделяя их запятой ",". (*.* или пустое поле расширения задаст поиск по всех файлах). Что касается "Найти/Заменить" ("Find/Replace"), то чтобы сделать поиск более конкретным предусмотрены флажки.

Флажок "Включать поддиректории" ("Include sub-directories") заставляет искать (рекурсивно) внутри любой поддиректории данной корневой директории.

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

Двойной клик на элементе в окне результатов открывает этот файл в среде разработки и перепрыгивает к строке выбранного результата.