1import os.path
2import Prophet
3
4from Prophet.Legacy import App as _App, ZeroG as _ZeroG, DropIn as _DropIn, ConsoleApp as _ConsoleApp, X11App as _X11App
5from Keywords import Keyword as Kw, Set as KwS
6from Prophet.Categories import *
7
8
9class cforge(_App, _X11App):
10    name = "CForge IDE"
11    comment = "Code Forge IDE"
12    keywords = KwS(Development, IDE)  # Qt, Motif ???
13
14
15class ddd(_App, _X11App):
16    name = "DDD debugger"
17    comment = "X11 Display Data Debugger"
18    keywords = KwS(Development, Debugger, Motif)
19
20
21class eclipse(_DropIn, _X11App):
22    name = "Eclipse"
23    comment = "Eclipse Java IDE"
24    keywords = KwS(Development, Debugger, Java, GTK)
25
26    def relevant(self, path):
27        if Prophet.isExe(os.path.join(path, "eclipse")):
28            raise eclipse.StopDescention(path)
29
30
31class eric3(_App, _X11App):
32    name = "Eric IDE"
33    comment = "Python IDE for X11"
34    keywords = KwS(Development, IDE)
35
36
37class estudio(_App, _X11App):
38    name = "EiffelStudio"
39    comment = "EiffelStudio IDE"
40    keywords = KwS(Development, IDE, Debugger)
41
42    def getPrefixes(self):
43        return super(
44            estudio,
45            self).getPrefixes() + "$ISE_EIFFEL/studio/spec/$ISE_PLATFORM"
46
47
48# TODO : Komodo
49
50class jbuilder(_ZeroG, _X11App):
51    name = "JBuilder"
52    magic = ".*?Borland\sJBuilder.*?"
53    comment = "Borland JBuilder IDE"
54    keywords = KwS(Development, IDE, GUIDesigner, Java)
55
56
57class fluid(_App, _X11App):
58    name = "Fluid"
59    comment = "FLTK interface builder"
60    keywords = KwS(Development, IDE, GUIDesigner)
61
62
63# FIXME : name's pretty generic, name clash possible
64class fp(_App, _ConsoleApp):
65    name = "FreePascal"
66    comment = "Standart IDE for the FreePascal"
67    keywords = KwS(Development, IDE, Core)
68
69
70class gdb(_App, _ConsoleApp):
71    name = "GDB"
72    comment = "Standard GNU debugger"
73    keywords = KwS(Development, Debugger, Core)
74
75
76class idb(_App, _ConsoleApp):
77    name = "IDB"
78    comment = "Intel debugger"
79    keywords = KwS(Development, Debugger)
80
81
82class idea(_ZeroG, _X11App):
83    exes = ["idea.sh", "idea"]
84    name = "IDEA"
85    magic = ".*?IntelliJ\sIDEA.*?"
86    comment = "IntelliJ IDEA IDE"
87    keywords = KwS(Development, IDE, GUIDesigner, Java)
88
89
90class kylix(_App, _X11App):
91    name = "Kylix"
92    comment = "Borland Delphi IDE for UNIX"
93    exes = ["startdelphi", "startkylix"]
94    keywords = KwS(Development, IDE, GUIDesigner, Debugger)
95
96
97class lazarus(_DropIn, _X11App):
98    name = "Lazarus"
99    comment = "Delphi-like FreePascal IDE"
100    keywords = KwS(Development, Debugger, GUIDesigner, GTK)
101
102    def relevant(self, path):
103        if Prophet.isExe(os.path.join(path, "lazarus")):
104            raise lazarus.StopDescention(path)
105
106
107class motor(_App, _ConsoleApp):
108    name = "Motor IDE"
109    comment = "Console IDE with Borland look&feel"
110    keywords = KwS(Development, IDE)
111
112
113class netbeans(_DropIn, _X11App):
114    name = "NetBeans"
115    comment = "NetBeans Java IDE"
116    keywords = KwS(Development, Debugger, Java, GTK)
117
118    def relevant(self, path):
119        if Prophet.isExe(os.path.join(path, "bin/netbeans")):
120            raise netbeans.StopDescention(path)
121
122
123class tkcvs(_App, _X11App):
124    name = "TkCVS"
125    comment = "X11 CVS frontend"
126    keywords = KwS(Development, RevisionControl)
127
128
129class ups(_App, _X11App):  # FIXME : generic name
130    name = "UPS"
131    comment = "Native X11 debugger"
132    keywords = KwS(Development, Debugger)
133
134
135class wpe(_App, _ConsoleApp):
136    name = "WPE"
137    comment = "A text-mode Borland-like IDE"
138    keywords = KwS(Development, IDE)
139
140
141class xwpe(_App, _X11App):
142    name = "XWPE"
143    comment = "Borland-like IDE for X11"
144    keywords = KwS(Development, IDE)
145
146
147class xxgdb(_App, _X11App):
148    name = "XXGDB"
149    comment = "X11 GDB frontend"
150    keywords = KwS(Development, Debugger)
151