IntelliJ IDEA + Pascal
Модератор: Модераторы
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Странно...
Конкретные .ppu должны быть вилны в списке во вьюхе Project ниже проекта и модулей в External Libraries. Если открыть один из них, виден интерфейс модуля?
RTL должна быть именно от той версии FPC, от которой компилятор в SDK. Ppudump не понимает файлов не своей версии.
Также версия FPC должна быть 2.7.x или выше.
Можно работать в 13.x, 14.0, 14.1.
Плагин да, в официальном репозитории. http://plugins.jetbrains.com/plugin/7340
Ставить просто через Settings/Plugins
Да, и еще важно, чтобы в зависимостях модуля (Project Structure => Modules => <модуль> => Dependencies) был прописан Module SDK. При переустановке SDK он слетает. Тогда либы не видно.
Конкретные .ppu должны быть вилны в списке во вьюхе Project ниже проекта и модулей в External Libraries. Если открыть один из них, виден интерфейс модуля?
RTL должна быть именно от той версии FPC, от которой компилятор в SDK. Ppudump не понимает файлов не своей версии.
Также версия FPC должна быть 2.7.x или выше.
Можно работать в 13.x, 14.0, 14.1.
Плагин да, в официальном репозитории. http://plugins.jetbrains.com/plugin/7340
Ставить просто через Settings/Plugins
Да, и еще важно, чтобы в зависимостях модуля (Project Structure => Modules => <модуль> => Dependencies) был прописан Module SDK. При переустановке SDK он слетает. Тогда либы не видно.
Удалил SDK с FPC 2.6.4, добавил SDK с FPC 2.7, указал SDK в Module, в External Libraries оно показывается, нажал Invalidate Cache & Restart; но модули не находятся, sysutils подчёркивается красным, iniFiles подчёркивается красным, integer подчёркивается красным.
Добавлено спустя 1 минуту 13 секунд:
Только лишь модуль windows не подчёркивается красным, но там где используется функция CreateMutex из этого модуля, она подчёркивается красным
Добавлено спустя 5 часов 11 минут 13 секунд:

Добавлено спустя 1 минуту 13 секунд:
Только лишь модуль windows не подчёркивается красным, но там где используется функция CreateMutex из этого модуля, она подчёркивается красным
Добавлено спустя 5 часов 11 минут 13 секунд:
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Так до этого был 2.6.4?
Если один из ppu, что показываются в External Libraries открыть двойным кликом, открывается?
А в code completion в uses модули RTL показываются?
Попробуй создать новый проект, в отдельной папке. Тип - Pascal. Тип модуля тоже обязательно должен быть Pascal.
Вообще надо будет как-нибудь научиться выпиливать яву и собрать свое IDE чисто для паскалевское. Как PyCharm для питона.
А я пока посмотрю на виндовой версии - может в винде все дело.
Если один из ppu, что показываются в External Libraries открыть двойным кликом, открывается?
А в code completion в uses модули RTL показываются?
Попробуй создать новый проект, в отдельной папке. Тип - Pascal. Тип модуля тоже обязательно должен быть Pascal.
Вообще надо будет как-нибудь научиться выпиливать яву и собрать свое IDE чисто для паскалевское. Как PyCharm для питона.
А я пока посмотрю на виндовой версии - может в винде все дело.
Есть подозрение что дело в моём проекте в котором 600 модулей. Я даже не особенно сомневаюсь что для пустого проекта сработает. Уже срабатывало. Тольк мне надо для моего проекта а не для пустого проекта
Добавлено спустя 11 минут 11 секунд:
PPU-файлы в IDEA открываются, показывает пустой документ
Добавлено спустя 11 минут 11 секунд:
PPU-файлы в IDEA открываются, показывает пустой документ
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
От количества модулей сие зависеть не может.
Поставил на винде - симптомы те же. Буду разбираться.
Добавлено спустя 2 часа 45 минут 12 секунд:
Разобрался. Проблема была с разделителями в путях. Как раньше у тебя работало непонятно.
Обновил плагин.
Поставил на винде - симптомы те же. Буду разбираться.
Добавлено спустя 2 часа 45 минут 12 секунд:
Разобрался. Проблема была с разделителями в путях. Как раньше у тебя работало непонятно.
Обновил плагин.
Вроде бы стало лучше, но модуль Windows не декомпилируется. Ну а LCL можно как-нибудь подключить?
Добавлено спустя 10 минут 52 секунды:
а, нет, распознаётся, нужно было SDK пересоздать
Добавлено спустя 49 секунд:
Но с проектными модулями всё не очень хорошо; некоторые проектные идентификаторы не распознаются
Добавлено спустя 10 минут 52 секунды:
а, нет, распознаётся, нужно было SDK пересоздать
Добавлено спустя 49 секунд:
Но с проектными модулями всё не очень хорошо; некоторые проектные идентификаторы не распознаются
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Что за проектные идентификаторы?
LCL как ppu подключил или исходниками? И как оно распознается?
Кстати, добавил поддержку множественного наследования (ранее учитывалась область видимости только последнего предка класса), а также поддержку WITH.
Возможно, что-то из этого поможет твоим проектным идентификаторам.
Файл обновлен.
Если не поможет, покажи пример, может там какое сложное выражение.
Мой проект уже ничего не подсвечивает, кроме идентификаторов, объявленных в инклудах.
Надо что-нибудь большое проверить, типа VCL...
LCL как ppu подключил или исходниками? И как оно распознается?
Кстати, добавил поддержку множественного наследования (ранее учитывалась область видимости только последнего предка класса), а также поддержку WITH.
Возможно, что-то из этого поможет твоим проектным идентификаторам.
Файл обновлен.
Если не поможет, покажи пример, может там какое сложное выражение.
Мой проект уже ничего не подсвечивает, кроме идентификаторов, объявленных в инклудах.
Надо что-нибудь большое проверить, типа VCL...
Проектные идентификаторы это те которые объявлены в одном из модулей проекта.
У нас собственно какие есть наборы модулей:
1. Стандартная библиотека FPC которая лежит в папке FPC.
2. Принадлежащие проекту, которые лежат в папке с проектом.
3. Третья сторона - какие-то модули, которые не принадлежат проекту, но нужны. Типа LCL
Как я подключил LCL: пока никак; потому и спросил, как его подключить.
Плагин в репозитории плагинов IDEA что-то не обновился, показывает ту же версию, что и в прошлый раз: 0.85
Добавлено спустя 12 минут 18 секунд:
проектные идентификаторы это которые в №2
Через некоторое время посмотрю ещё раз свой проект и попытаюсь поточнее определить и описать что конкретно не работает или не определяется и напишу сюда. Посмотришь, ок?
У нас собственно какие есть наборы модулей:
1. Стандартная библиотека FPC которая лежит в папке FPC.
2. Принадлежащие проекту, которые лежат в папке с проектом.
3. Третья сторона - какие-то модули, которые не принадлежат проекту, но нужны. Типа LCL
Как я подключил LCL: пока никак; потому и спросил, как его подключить.
Плагин в репозитории плагинов IDEA что-то не обновился, показывает ту же версию, что и в прошлый раз: 0.85
Добавлено спустя 12 минут 18 секунд:
проектные идентификаторы это которые в №2
Через некоторое время посмотрю ещё раз свой проект и попытаюсь поточнее определить и описать что конкретно не работает или не определяется и напишу сюда. Посмотришь, ок?
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Насчет LCL - правильно было бы подключить как библиотеку исходников (есть такое в Идее). Либо отдельно, либо в SDK.
Но я попробовал, что-то не хочет там ничего искать, пустая, говорит. Видимо надо как-то объяснить, что это паскалевская библиотека, а не явовская. Посмотрю потом.
Можно создать новый модуль с content root, указывающим на папку с сорцами LCL. Только надо именно пометить эту папку как sources, а то по умолчанию там только src помечена.
Еще можно скомпилировать и полученные .ppu подключить либо по аналогии с SDK там же, либо отдельно библиотекой. Толку от исходников все равно мало, т.к. интерфейсы не комментированы.
В репозитории плагин обновляется где-то раз в неделю. По ссылке свежее.
С проектными идентификаторами не понял - все красным подсвечиваются, или некоторые? Если второе, то есть закономерность?
В общем, пиши что не так, разберемся.
Но я попробовал, что-то не хочет там ничего искать, пустая, говорит. Видимо надо как-то объяснить, что это паскалевская библиотека, а не явовская. Посмотрю потом.
Можно создать новый модуль с content root, указывающим на папку с сорцами LCL. Только надо именно пометить эту папку как sources, а то по умолчанию там только src помечена.
Еще можно скомпилировать и полученные .ppu подключить либо по аналогии с SDK там же, либо отдельно библиотекой. Толку от исходников все равно мало, т.к. интерфейсы не комментированы.
В репозитории плагин обновляется где-то раз в неделю. По ссылке свежее.
С проектными идентификаторами не понял - все красным подсвечиваются, или некоторые? Если второе, то есть закономерность?
В общем, пиши что не так, разберемся.
В официальном онлайн-репозиторий последняя версия 0.85
У меня сейчас 0.87
После одного из обновлений стало лучше с идентификаторами которые в with
В LCL как-то не очень распознаётся. В одном месте:
- из forms.ppu
так вот, controls.TCustomControl не распознаётся, видимо, из-за обращения через имя модуля controls. ... .
А вот здесь распознаётся:
- без модуля
Добавлено спустя 8 минут 4 секунды:
Вот ещё косяк заметил: в одном модуле windows подчёркнуто красном, в другом не подчёркнуто. Думал, в чём дело. В одном модуле написано windows, а в другом Windows. Написал во втором модуле тоже с маленькой буквы windows. Перестало подчёркивать
Добавлено спустя 1 минуту 47 секунд:
PPU можно и через SDK, и через Module добавлять?
Добавлено спустя 12 минут 59 секунд:
некоторые модули в проекте вообще оказывается только в dcu, без исходников. Они не распознаются ясен пень
Добавлено спустя 4 минуты 6 секунд:
Если пытаться добавить LCL как Module, то если не помечать как Source, то модули не распознаются. Если пометить, то ppu вообще пропадают из списка файлов, остаются только .o
Добавлено спустя 5 минут 30 секунд:
а если через SDK, то там сразу две папки попадают, win32 и nogui, и вторую нельзя исключить, не уверен что это хорошо
У меня сейчас 0.87
После одного из обновлений стало лучше с идентификаторами которые в with
В LCL как-то не очень распознаётся. В одном месте:
Код: Выделить всё
type TScrollingWinControl = class(controls.TCustomControl)так вот, controls.TCustomControl не распознаётся, видимо, из-за обращения через имя модуля controls. ... .
А вот здесь распознаётся:
Код: Выделить всё
type TCustomForm = class(TScrollingWinControl)Добавлено спустя 8 минут 4 секунды:
Вот ещё косяк заметил: в одном модуле windows подчёркнуто красном, в другом не подчёркнуто. Думал, в чём дело. В одном модуле написано windows, а в другом Windows. Написал во втором модуле тоже с маленькой буквы windows. Перестало подчёркивать
Добавлено спустя 1 минуту 47 секунд:
PPU можно и через SDK, и через Module добавлять?
Добавлено спустя 12 минут 59 секунд:
некоторые модули в проекте вообще оказывается только в dcu, без исходников. Они не распознаются ясен пень
Добавлено спустя 4 минуты 6 секунд:
Если пытаться добавить LCL как Module, то если не помечать как Source, то модули не распознаются. Если пометить, то ppu вообще пропадают из списка файлов, остаются только .o
Добавлено спустя 5 минут 30 секунд:
а если через SDK, то там сразу две папки попадают, win32 и nogui, и вторую нельзя исключить, не уверен что это хорошо
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Уу, старье, уже 0.9 актуальна.
Совместимость с Delphi RTL и прочими исходниками выросла.
Оказывается деструкторы бывают статическими.
Еще, т.к. в исходниках RTL всякие дефайны используются, и без них фиг распарсишь, то при создании SDK в его настройки теперь прописываются дефайны соответствующие текущей ОС и архитектуре. В виде доп. параметров компилятора (-dMSWINDOWS например). Парсер оттуда их берет. Если нужны другие дефайны, можно там прописать.
Насчет Windows странно, от регистра не должно зависеть. ОС какая? Винда? Как этот Windows подключен? Как .pas или .ppu?
ppu можно и в SDK и в зависимости модуля добавлять, да.
dcu будет декомпилироваться, как и ppu.
Когда директория помечается как исходник, то там показываются исходники и файлы неизвестного типа. ppu известны как скомпилированные, потому не показываются. Исходники имеют приоритет на скомпилированными файлами.
Последнюю фразу не понял - откуда win32 и nogui, почему нельзя исключить?
Совместимость с Delphi RTL и прочими исходниками выросла.
Оказывается деструкторы бывают статическими.
Еще, т.к. в исходниках RTL всякие дефайны используются, и без них фиг распарсишь, то при создании SDK в его настройки теперь прописываются дефайны соответствующие текущей ОС и архитектуре. В виде доп. параметров компилятора (-dMSWINDOWS например). Парсер оттуда их берет. Если нужны другие дефайны, можно там прописать.
Насчет Windows странно, от регистра не должно зависеть. ОС какая? Винда? Как этот Windows подключен? Как .pas или .ppu?
ppu можно и в SDK и в зависимости модуля добавлять, да.
dcu будет декомпилироваться, как и ppu.
Когда директория помечается как исходник, то там показываются исходники и файлы неизвестного типа. ppu известны как скомпилированные, потому не показываются. Исходники имеют приоритет на скомпилированными файлами.
Последнюю фразу не понял - откуда win32 и nogui, почему нельзя исключить?
Добавил ссылку на плагин на страницу IDE в вики
Сам не пользуюсь, ибо верую в Лазаря, но рекомендую написать в вики же краткую страничку о плагине, с картинками и тонкостями по установке.
Ибо страничка на сиберике пуста.
Сам не пользуюсь, ибо верую в Лазаря, но рекомендую написать в вики же краткую страничку о плагине, с картинками и тонкостями по установке.
Ибо страничка на сиберике пуста.
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Спасибо, как будут картинки и понимание того, что в данном случае есть тонкие моменты (для меня-то тут уже все просто и понятно), обновлю.
Хотя страничка же вроде не пуста?
Насчет веры - я и сам считал Delphi7 лучшей из IDE, пока не стал на Java писать. А там уже на практике выяснилось, что даже Eclipse на голову удобнее...
Хотя страничка же вроде не пуста?
Насчет веры - я и сам считал Delphi7 лучшей из IDE, пока не стал на Java писать. А там уже на практике выяснилось, что даже Eclipse на голову удобнее...
Mirage писал(а):Хотя страничка же вроде не пуста?
именно на эту страницу ведёт ссылка с jetbrains.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
