I-Pascal: IDE based on IntelliJ platform

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

I-Pascal: IDE based on IntelliJ platform

George Bakhtadze
Hi all,

I-Pascal  is  an  IDE  (mainly code editor) for Object Pascal based on
IntelliJ platform. Other products based on the platform includes IDEA,
WebStorm, Android Studio.

The  platform  is built around AST (abstract syntax tree) concept. The
AST is built from code and used for analysis. This approach allows IDE
to  "understand"  code  while  doing  completion,  navigation,  static
analysis etc.

The project's main focus is code: editing, navigation, analysis.

Currently implemented features are:
 . highlighting    for    some    kinds    of    errors    (missing
 declarations/implementations)
 . quick fixes for the errors
 . context aware code completion
 . navigation to overridden/descendant methods/classes
 . navigation to super methods/classes
 . PPU/DCU interface decompilation (FPC 2.7.x or above is needed)
 . rename refactoring
 . integration with Free Pascal compiler as well as Delphi compiler
and others.

The project site:
http://www.siberika.com/siberika/ipascal.html

Installation and usage instructions:
http://www.siberika.com/siberika/install.html

Feedback is highly appreciated.

--
Best regards, George

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

leledumbo
Administrator
> Feedback is highly appreciated.

From the install page:
Click "+" icon and select "Free Pascal SDK" or "Delphi SDK".
Then select SDK home directory. It's a directory where compiler directories such as "bin" and "units" are located.

Under *nix platforms, FPC layout is slightly different. At least bin and units by default doesn't have the same direct parent (/usr/bin vs /usr/lib/fpc/$fpcversion/units). Does this mean your plugin doesn't work there?
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

Graeme Geldenhuys-6
On 2015-08-21 10:41, leledumbo wrote:
> Under *nix platforms, FPC layout is slightly different. At least bin and
> units by default doesn't have the same direct parent

Indeed. If you use FPC's official installer (not Linux distro package
managers) it is less of a problem. You could symlink the "units"
location or simply move it, and then update the search paths accordingly
in your ~/.fpc.cfg file. It should work then.

Regards,
  - Graeme -

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

George Bakhtadze
In reply to this post by leledumbo
l> Under *nix platforms, FPC layout is slightly different. At least bin and
l> units by default doesn't have the same direct parent (/usr/bin vs
l> /usr/lib/fpc/$fpcversion/units). Does this mean your plugin doesn't work
l> there?

I'm  using Linux and CodeTyphoon which  places  all  FPC-related  files in one
directory and initially I didn't know of any problems.

OSX users reported the problem with paths.
The right directory for SDK is parent of "units" (offered automatically).
/usr/bin is checked for fpc executable.
So it should work.

If  someone knows better ways to determine locations of fpc executable
and RTL DCUs please let me know.

---
Best regards, George

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

Sven Barth-2

Am 22.08.2015 15:28 schrieb "ARGB32" <[hidden email]>:
>
> If  someone knows better ways to determine locations of fpc executable
> and RTL DCUs please let me know.

For the unit paths parsing fpc.cfg (by default on *nix either /etc/fpc.cfg or ~/.fpc.cfg) might be the best solution.

Regards,
Sven


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

Graeme Geldenhuys-6
In reply to this post by George Bakhtadze
On 2015-08-22 13:27, ARGB32 wrote:
> /usr/bin is checked for fpc executable.

Under Linux (with its messed up file system hierarchy - user programs
mixed with system programs) that might work, but under FreeBSD (and
probably other *nix-type OSes too) it will most likely be located in
/usr/local/bin.  The same for the system wide fpc.cfg - under FreeBSD it
will be in /usr/local/etc/fpc.cfg

But that is no guarantee either. I for example always use the official
FPC installer, which means I can install to any location I have write
access too (all without root privileges), so I often install FPC into my
$HOME directory.

Maybe it is best to first see if you can retrieve the location via
'which fpc'. If it is not found, then look in some hard-coded locations.
If still not found, them prompt the user for the path.

Regards,
  - Graeme -

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: I-Pascal: IDE based on IntelliJ platform

leledumbo
Administrator
> Maybe it is best to first see if you can retrieve the location via
> 'which fpc'. If it is not found, then look in some hard-coded locations.
> If still not found, them prompt the user for the path.

Good idea, I suggest to peek at Lazarus startup code. It also checks for fpc and the like. Prompting separately for fpc and units path (or fpc.cfg path) could be another good idea, too.