Проверил. Заработало.
Ну, это не совсем консольный компилятор - это компилятор, работающий в консоли в режиме диалога
Там нет такой опции. pcu берутся или из текущего каталога или из стандартного каталога Lib
- Из меню Сервис->Режим автовставки кода эта кнопка не включается и не выключается. Только из тулбара.
- Можно синхронизировать настраиваемые отступы и отступы автовставки? Если в настройках Сервис->Настройки->Редактор->Конвертировать Tab в пробелы
поставить, например, 3 пробела, то при включенной автовставке и по нажатию Enter в конце строки, например, после
begin
- всегда выдает отступ в 2 пробела. (Кстати, та же проблема и с шаблонами-сниппетами.) - Можно сделать так, чтобы состояние этой кнопки запоминалось при закрытии предыдущего сеанса? Почему она всегда активируется при старте ide?
Разработчики обещали скоро сделать чтоб запоминало.
Потому что ещё нет сохранения в .ini о том, включена эта опция или нет. Но я тоже жду когда её выключат по умолчанию и/или сделают запоминание активности. Вещь-то прикольная, но сырая.
Сделал:
Нам нужно, чтобы у школьников при работе в дисплейных классах эта кнопка была активна при запуске всегда. Пока не пойму, как это сделать.
А в чем сырость то?
Сделать в меню Настройки пунктик. Пусть по умолчанию будет опция взведена, а продвинутый пользователь при желании сможет сбросить. Как, к примеру, опцию включения отладочной информации. И чтобы состояние кнопки в IDE влияло только на текущую сессию, а при новом запуске бралось из настроек. Школьники тоже люди и должны иметь возможность эту опцию при желании на время отключить.
В том, что пока мало автовставок, встречаются баги и со сниппетами эта штука не дружит. Можно добавить в настройки опцию “Дружить со сниппетами” и когда она включена не добавлять табуляцию при Enter после оператора условия/цикла и т.д, ибо я (пользователь) это уже сам сделаю с помощью b+shift+space, и будет это заметно быстрее, чем begin+Enter.
Да, мне это тоже больше всего мешает в этой фиче. Но будет лучше, если при активации снипетов вроде b
- табы сами убирались, чем если их и ставить не будет.
Автозавершение при вводе не будет дружить со сниппетами. Оно не для того делалось.
Отступ в 2 пробела признаётся нами единственно правильным. Свой стиль - это отключение возможности.
Я не понимаю, о какой табуляции при Enter вы говорите. Знак табуляции не добавляется - только пробелы
Багов сейчас нет с моей точки зрения.
Да, автозавершение будет расширять возможности. Следует иметь в виду, что оно не направлено на профессиональных программистов, которые автоматически код форматируют правильно и возможно по-своему. Автозавершение - для начинающих.
А зачем такая дружба нужна в принципе? Совершенно разные средства.
Быть может, “правильный отступ” должен браться отсюда? А то будет противоречие с пользовательской настройкой.
2 пробела и табуляция в PascalABC.NET это одно и то же.
Суть не в этом.
Ввожу я, значит, if true then:
begin
if true then|
end.
Переносит на следующую строку с отступами:
begin
if true then
|
end.
Если я навожу begin+Enter, то лишние отступы удаляются:
begin
if true then
begin
|
end;
end.
А если использовать ГОРАЗДО БОЛЕЕ БЫСТРЫЙ И УДОБНЫЙ в написании сниппет B+SHIFT+SPACE, к которому уже давно ВСЕ ПРИВЫКЛИ, нас встретит вот такое:
begin
if true then
begin
|
end;
end.
И именно это уже достало! Можно добавлять те 2 пробела уже после написания оператора в if, убедившись, что у него точно нет begin-end блока? Или всё-таки как-нибудь сдружить сниппет b+shift+space с AutoInsertCode? Ну или агрессивно удалить эти отступы после вставки сниппета?
Я понимаю, что это Ваше сугубо личное мнение. А Вы пишете в этой среде часами, как я, или сутками, как SunSerega? Не думаю. У меня сложилось другое мнение:
Для себя я вижу применение сниппетов и автовставки в одном русле — УСКОРЕНИЕ и ПОВЫШЕНИЕ УДОБСТВА написания кода. Если разработчики решают использовать автовставку для того, чтобы прививать юным программистам “чувство стиля”, то это хорошо, но профессиональных программистов (сколько бы их не было, а их, к сожалению, только поубавилось за последний год) это тоже не должно ограничивать, ибо фича очень годная.
@Admin, по поводу блокировки отключения автовставки — сделайте отдельный параметр в настройках “School version”, потом на него ещё чего-нибудь повесить можно будет. И закрепите эту штуку на уровне реестра. Тогда на компьютерах в школах без учителя/админа и не убрать будет))
…Если не считать что автозавершение повсюду суёт лишние пробелы на концах строчек… Ну, это, конечно, не так серьёзно как отсутствие интеграции с другими фичами IDE, хоть вы и не считаете это багом.
А приведите хотя бы один пример
Ладно, подумаю. А приведите пример, когда это средство действительно удобно.
И - всё-таки, принципиальный вопрос.
Школьник пишет:
loop 10 do
Print(1);
Мы его заставляем писать
loop 10 do
Print(1);
Это хорошо. Но программисты возмущаются.
Что делать?
Лучший вариант - если на предыдущей строчки стоит loop
, for
, if
и т.п., при активации снипета, содержащего end
в готовом тексте - сдвигать весь снипет на 2 пробела влево. Это должно быть не сложно реализовать и будет работать не только со снипетом b
, а и со всеми остальными.