Замечания и предложения

ага

Классно - компилятор ресурсов на PascalABC.NET!

Если бы)) Я нашёл только эту страницу, но когда я залез в готовый файл ресурсов с иконкой - там ничо не сходится. Совершенно. В итоге я просто взял готовый файл с ресурсом иконкой и заменяю в нём несколько значений (проверил, что меняется если разные иконки подставлять и эти части вырезал).

Чуть позже может ещё разберусь, но для начала с несколькими проектами хочу разобраться, да и без того хватает чем голову забить.

@ibond а когда, кстати, будет это в билде?

На неделе. Создайте issue, чтоб я нe забыл

1 лайк

Можно ли сделать так чтоб форматирование исправляло регистр?

Чтоб

procedure MyProc := exit;

begin
  var MyVar := 0;
  
  mYprOc;
  MYvAr := 0;
end.

превращалось в

procedure MyProc := exit;

begin
  var MyVar := 0;
  
  MyProc;
  MyVar := 0;
end.

Регистр в языке Паскаль незначим. Насильно исправлять его - нарушать принятые в языке соглашения.

Это странное предложение.

Технически у нас это невыполнимо. т.к. форматирование проходит на синтаксическом уровне, а для анализа имен нужна семантика

Даже если бы проходило: на каком основании исправлять имена? Может быть, человек нарочно решил использовать верблюжью нотацию, правила языка это позволяют.

Посмотрите внимательно на пример. Говорится не про исправление типа нотации, а про то - что если переменная объявлена каким то образом - везде где она использует тоже так же делало.

То есть чтоб так же это:

procedure mYprOc:= exit;

begin
  var MYvAr := 0;
  
  MyProc;
  MyVar := 0;
end.

превращалось в

procedure mYprOc := exit;

begin
  var MYvAr := 0;
  
  mYprOc;
  MYvAr := 0;
end.

То есть чтоб ориентировалось на описание, то как решил пользователь. Но при этом, к примеру, есть writeln. Вот его имеет смысл исправлять на Writeln при форматировании. Потому что разработчики решили что так правильно, и так делает Ctrl+Space.

Я не совсем понял ваше объяснение, но если вызвать переименование - оно меняет регистр. То есть технически - таки возможно (переименование как то но работает ведь). Вопрос только в том - как на практике реализовать не_костылём…

Такое есть в VB/VBA. Нервы расшатывает страшно. Работает по текущему представлению. Объявил aR, где-то набрал AR - ткт же по всему тексту переименовалось в AR. Поправил на ar - везде ar стало. Тупо контекстная замена в реальном времени. Лично меня раздражает страшно.

И еще раз: в Паскале регистр НЕЗНАЧИМ. Понимаете это слово? НЕЗНАЧИМ. Следовательно не должно идти речи ни о каких автоматических переименованиях. Пользователь имеет право писать переменные так, как хочет.

Но главное даже не в этом. Сейчас, чего греха таить, Intellisence местами лагает. Вы хотите, чтобы в результате подобных лагов еще и имена переменных летели в тексте программы? Я - нет.

В паскале так же переносы строки не значими но форматирование же их исправляет))

Кроме того,

procedure p1;
begin
  var MyVar := 0;
end;

procedure p2;
begin
  var myvar := 0;
end;

begin end.

Вызываем переименование последней переменной в myVar, получаем:

procedure p1;
begin
  var MyVar := 0;
end;

procedure p2;
begin
  var myVar := 0;
end;

begin end.

То есть меняет не по всему текста, а смотрит на контекст.

Да, и где-то заодно поменяет amYvar. А чтобы этого не было, как написал @Admin, надо семантику смотреть, чего нет. В общем, пустой это разговор.

Не всегда это хорошо, например, при написании имён в стиле:

MyVaRiAbLe

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

Это повод улучшать Intellisence, а не отказываться от предложения @Sun_Serega.

Часть, которую предлагает @Sun_Serega, не относится к Intellisense и может быть реализована как отдельный плагин. Система плагинов PascalABC.NET это позволяет.

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

Поэтому моё мнение простое - если это будет сторонняя разработка, оформленная в виде dll-плагина, то мы будем только рады. А то, насколько она нужна, можно будет узнать по количеству её скачиваний.

Главное, чтобы она автоматом не срабатывала при использовании имеющегося форматирования.

Мне кажется, это разные вещи. Форматирование само по себе, изменение имен - само по себе

Ме тоже так кажется, но плагин - это уж как его подключить. Если птичкой в настройках - это одно, а если инсталлировал и без деинсталляции не отключить - совсем иное. Вот если “с птичками” - то “Больше плагинов - хороших и разных!” ))

Я не хотел бы такой плагин в инсталлят. Как внешний плагин - да - скачиваешь с сайта, копируешь в папку и появляется кнопочка на панели инструментов и в контекстном меню.

1 лайк