Wiki source code of Running KEITH
Version 5.1 by Soeren Domroes on 2019/02/15 14:29
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
5.1 | 1 | == Setting up your eclipse == |
![]() |
1.1 | 2 | |
![]() |
5.1 | 3 | For everything not mentioned here refer to [[Configuring Eclipse>>doc:KIELER.Configuring Eclipse||shape="rect"]] guide. |
![]() |
1.1 | 4 | |
![]() |
5.1 | 5 | Use the installer go to advanced mode, add the KIELER url. Then select first pragmatics and after that semantics (that is very important). |
![]() |
1.1 | 6 | |
![]() |
5.1 | 7 | Select the Theia stream for semantics and the Keith stream for pragmatics and use the latest eclipse if possible. Set the targetplatform to photon and finish. |
![]() |
1.1 | 8 | |
![]() |
5.1 | 9 | Wait till everything installs and the setup tasks finish. If you have any problems in this stage refer to the [[Configuring Eclipse>>doc:KIELER.Configuring Eclipse||shape="rect"]] guide. |
![]() |
1.1 | 10 | |
![]() |
5.1 | 11 | \\ |
![]() |
1.1 | 12 | |
![]() |
5.1 | 13 | The setup tasks for Modular Target will fail. Disable it after this happens and execute them again via //Help>Perform Setup Tasks//. Run //clean build//. Several pragmatics projects have error. Just close them and you will be fine. |
![]() |
1.1 | 14 | |
![]() |
5.1 | 15 | To run the language server go to //Run Configurations// create a new //eclipse application// run configuration and select //Run an application// and //de.cau.cs.kieler.language.server.LanguageServer// |
![]() |
1.1 | 16 | |
![]() |
5.1 | 17 | == [[image:attach:Screenshot from 2019-02-15 14-10-50.png]] == |
![]() |
1.1 | 18 | |
![]() |
5.1 | 19 | \\ |
![]() |
1.1 | 20 | |
![]() |
5.1 | 21 | You have to edit the arguments too. The Vm arguments host and port are added to connect the LS via socket. |
![]() |
1.1 | 22 | |
![]() |
5.1 | 23 | [[image:attach:Screenshot from 2019-02-15 14-13-34.png]] |
![]() |
1.1 | 24 | |
![]() |
5.1 | 25 | The default port to which KEITH tries to connect is 5007. |
![]() |
1.1 | 26 | |
27 | == Setting up a KEITH developer setup... == | ||
28 | |||
29 | General requirements: | ||
30 | |||
31 | * node | ||
32 | * npm (whatever node installs) | ||
33 | * yarn (latest version) | ||
34 | * Python (2.7.X) | ||
35 | * gcc, g++, and make (for native dependencies of some npm packages) | ||
36 | * [[Visual Studio Code>>url:https://code.visualstudio.com/||shape="rect"]] (latest version) | ||
37 | * a cloned [[keith >>url:https://git.rtsys.informatik.uni-kiel.de/projects/KIELER/repos/keith/browse||shape="rect"]]repository | ||
38 | |||
39 | == ... on linux: == | ||
40 | |||
41 | (Theia has a [[guide >>url:https://www.theia-ide.org/doc/authoring_extensions||shape="rect"]]for extension development that might be helpful) | ||
42 | |||
43 | install node 8: | ||
44 | |||
45 | {{code}} | ||
46 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash | ||
47 | nvm install 8 | ||
48 | {{/code}} | ||
49 | |||
50 | Install python if you haven't (remember: Python 2: , Python 3: ). | ||
51 | |||
52 | {{code language="none"}} | ||
53 | Install yarn (a package manager build on the package manager npm): | ||
54 | {{/code}} | ||
55 | |||
56 | {{{}}} | ||
57 | |||
58 | \\ | ||
59 | |||
60 | {{code}} | ||
61 | npm install -g yarn | ||
62 | {{/code}} | ||
63 | |||
64 | \\ | ||
65 | |||
66 | == ... on windows: == | ||
67 | |||
68 | Install [[node 8>>url:https://nodejs.org/download/release/v8.15.0/||shape="rect"]] for windows. I personally used the {{code language="none"}}.msi{{/code}}. | ||
69 | |||
70 | Use that to install windows-build-tools: | ||
71 | |||
72 | {{code}} | ||
73 | npm install -g windows-build-tools | ||
74 | {{/code}} | ||
75 | |||
76 | This installs make, gcc, g++, python and all this (I am not sure about yarn, anyway you can always install yarn the same way as in the linux description) | ||
77 | |||
78 | == ... on mac: == | ||
79 | |||
80 | Get a package manager, something like [[brew>>url:https://brew.sh/index_de||shape="rect"]]. | ||
81 | |||
82 | Use brew to install all necessary stuff. | ||
83 | |||
84 | Apparently there is an issue with xcode-select: [[Theia developers>>url:https://github.com/theia-ide/theia/blob/master/doc/Developing.md||shape="rect"]] recommend the following: | ||
85 | |||
86 | {{code}} | ||
87 | xcode-select --install | ||
88 | {{/code}} | ||
89 | |||
![]() |
5.1 | 90 | After doing this for your OS all that is missing is running KEITH (in developer setup) and setting up your eclipse for language server development). |
![]() |
1.1 | 91 | |
![]() |
5.1 | 92 | = Stuff that may help = |
![]() |
1.1 | 93 | |
![]() |
5.1 | 94 | == Running the already build LS == |
![]() |
1.1 | 95 | |
![]() |
5.1 | 96 | Go to the latest [[Bamboo build>>url:https://rtsys.informatik.uni-kiel.de/bamboo/browse/KISEMA-NSI||shape="rect"]] and go to Artifacts. |
![]() |
1.1 | 97 | |
![]() |
5.1 | 98 | [[image:attach:image2019-2-7_17-46-58.png]] |
![]() |
1.1 | 99 | |
![]() |
5.1 | 100 | Select Language Server Zip and download the LS and unpack it somewhere. |
101 | |||
102 | Locate the kieler.ini file. Depending on the OS it has a different location (linux; toplevel, windows, toplevel, mac: Content/Eclipse/kieler.ini) | ||
103 | |||
104 | Paste the following at the beginning of the ini-file: | ||
105 | |||
![]() |
1.1 | 106 | {{code language="bash"}} |
![]() |
5.1 | 107 | -application |
108 | de.cau.cs.kieler.language.server.LanguageServer | ||
109 | -noSplash | ||
![]() |
1.1 | 110 | {{/code}} |
111 | |||
![]() |
5.1 | 112 | Since an eclipse application is built, this is needed to start the LS without a splashscreen. |
![]() |
1.1 | 113 | |
![]() |
5.1 | 114 | If you want to connect that LS via socket to your Theia application (KEITH) add the following to the vmargs: |
![]() |
3.1 | 115 | |
![]() |
5.1 | 116 | {{code}} |
117 | -Dport=5007 | ||
118 | {{/code}} | ||
![]() |
1.1 | 119 | |
![]() |
5.1 | 120 | 5007 is the standard port KEITH is currently connecting to in socket mode. You can find this port in your Theia application at the following location: |
![]() |
1.1 | 121 | |
![]() |
5.1 | 122 | Assume you are in the [[keith >>url:https://git.rtsys.informatik.uni-kiel.de/projects/KIELER/repos/keith/browse||shape="rect"]]repository. Go to {{code language="none"}}keith-app{{/code}}, you should see something like this: |
![]() |
1.1 | 123 | |
![]() |
5.1 | 124 | [[image:attach:image2019-2-7_17-58-22.png]] |
![]() |
1.1 | 125 | |
![]() |
5.1 | 126 | Open the {{code language="none"}}package.json{{/code}}. In the{{code language="none"}} package.json{{/code}} are several scripts defined. |
![]() |
3.1 | 127 | |
![]() |
5.1 | 128 | [[image:attach:image2019-2-7_18-0-7.png]] |
![]() |
1.1 | 129 | |
![]() |
5.1 | 130 | The {{code language="none"}}LSP_PORT{{/code}} option is used to activate the connection via socket. It is also possible to specify a relative location to a LS via {{code language="none"}}LS_PATH=<path to LS>{{/code}}. |
![]() |
3.1 | 131 | |
![]() |
5.1 | 132 | You can also set these options for an already build [[keith electron app>>url:http://rtsys.informatik.uni-kiel.de/~~kieler/files/nightly/sccharts-integration/||shape="rect"]]. |
![]() |
3.1 | 133 | |
![]() |
1.1 | 134 | \\ |
135 | |||
![]() |
5.1 | 136 | == How run KEITH in developer setup (socket) == |
![]() |
3.1 | 137 | |
![]() |
5.1 | 138 | Run the following to build and run KEITH in its developer setup (in socket mode, so the LS has to be started separately) |
![]() |
3.1 | 139 | |
![]() |
5.1 | 140 | {{code language="bash"}} |
141 | yarn && cd keith-app && yarn run socket | ||
142 | {{/code}} | ||
143 | |||
144 | Per default the KEITH opens on localhost:3000. | ||
145 | |||
146 | It is required to restart the language server if KEITH is restarted, since the diagram view has a problem (since theia-sprotty is used) to reconnect after that. |