diraven 10 Posted July 18, 2011 (edited) I'm wandering around with the idea of the IDE for Arma for the pretty much long time now. The tool, which will include project management, version control systems, extensive editing for sqf, sqm and other files, pbo/unpbo etc. Since I did not find anything like this in one solid tool - I've decided to make one myself. The project is very young, the only thing I'm asking for - if you were curious enough to download and install it - take a moment to report a bug or post a suggestion, please. BugTracker and Downloads (see "Files" section): http://dev-heaven.net/projects/skufer Currently implemented features: 0. All the features of the NetBeans Platform itself. 1. Syntax coloring for *.sqf files (all the colors are customizable via the options menu). 2. Basical syntax errors detecting and reporting for *.sqf files. 3. Simple code completion (thanks PvPscene for the database). Aside from the completion itself and internal docs about the command - you can always click the button at the top of the command description window to get to the corresponding wiki page and view full info with examples there. 4. Code templates. 5. PBO management (import of the project from PBO, export of the project to PBO). NBP Plugins/tools included in the package: - Mercurial support. - Subversion support. - CVS support. Planning for the future: - Implement atleast UTF-8 support to fix ASCII-only problem. Ideally - also other encodings. - Code folding. - Autoformatting. - Advanced syntax errors detecting. - Context-sensitive code completion. - And more... Additional info (How To's FAQ's etc): http://dev-heaven.net/projects/skufer/wiki/Wiki Edited October 2, 2011 by DiRaven Share this post Link to post Share on other sites
.kju 3245 Posted July 19, 2011 Also thanks to you and your effort DiRaven! It looks like very promising after testing your first release. What do you think about a project space (at DH) as a place for feedback? The other overall suggestion I have for the start is to get into contact with SBS Mac and T_D to ask them to share their sources in terms of grammar, lexer, parser to be able to improve your error checking system. Share this post Link to post Share on other sites
diraven 10 Posted July 19, 2011 Also thanks to you and your effort DiRaven!It looks like very promising after testing your first release. What do you think about a project space (at DH) as a place for feedback? The other overall suggestion I have for the start is to get into contact with SBS Mac and T_D to ask them to share their sources in terms of grammar, lexer, parser to be able to improve your error checking system. You are welcome. While I was doing what is already done - I've got a whole bunch of new info and knowladge. =) I like how it going. DH space would be good, installing/configuring bug tracker myself for the single project would be just waste of time. Thanks. Yes, I'll try, thanks a lot. It's a bit meanly to ask for the sources when I do not plan to share too much, but I'll try. Share this post Link to post Share on other sites
.kju 3245 Posted July 19, 2011 Cheers :) Here is the info how to get a project space. Share this post Link to post Share on other sites
diraven 10 Posted July 19, 2011 Request sent. Thanks. ---------- Post added at 10:05 AM ---------- Previous post was at 08:53 AM ---------- Does anyone have http://www.arma2.com/comref/comref.html in the computer-friendly format? Like any kind of database, or xml or whatever? Share this post Link to post Share on other sites
diraven 10 Posted July 19, 2011 0.1.0 is out: - [NEW] Added simple code completion (thanks PvPscene for the database). Aside from the completion itself and internal docs about the command - you can always click the button at the top of the command description window to get to the corresponding wiki page and view full info with examples there. - [NEW] Added an ability to create arma mission projects. Share this post Link to post Share on other sites
.kju 3245 Posted July 19, 2011 Thanks mate. Will give it an in depth test tomorrow. :) Share this post Link to post Share on other sites
diraven 10 Posted July 19, 2011 Found a pretty much ugly bug with the deployment version. Building fixed version now, will upload in a few minutes. Share this post Link to post Share on other sites
diraven 10 Posted July 26, 2011 v. 0.1.2 was released. [NEW] Introduced code templates (Tools->Options->Editor->Code Templates) (will add more templates later). [NEW] You can now delete project along with the real folder on the disc (not only project from Skufer). [NEW] You can now create new project by importing PBO file contents. Just go into the File->New Project->Projects with Existing Sources and follow the wizard. [NEW] You can now build PBO right from inside the IDE by right clicking the project node and selecting "Build PBO" option. In the dialog you may select folder or *.pbo file, or even put filename yourself, just not forget to put the *.pbo extension. To see the output of the process, press ctrl+4 or use Window->Output->Output menu. [CHANGE] Moved "Empty Sqf" template into the "ArmA" group. Share this post Link to post Share on other sites
jedra 11 Posted July 27, 2011 Found a small issue - it seems to not like some statements with curly braces. For example, it is quite happy with waitUntil {true; //note missing brace yet waitUntil {true}; gives a warning and the message 'extraneous input '}' expecting SEP_SEMICOLON. It does look very good though and might just wean me off Squint! Share this post Link to post Share on other sites
diraven 10 Posted July 27, 2011 Found a small issue - it seems to not like some statements with curly braces. For example, it is quite happy with waitUntil {true; //note missing brace yet waitUntil {true}; gives a warning and the message 'extraneous input '}' expecting SEP_SEMICOLON. It does look very good though and might just wean me off Squint! Yes, it probably does not like single-line statements inside curly braces (arma allows them to be without semicolon while my parser goes mad when sees that). Will fix, thanks. Share this post Link to post Share on other sites
jedra 11 Posted July 27, 2011 Of course! Arma has made me lazy!! Share this post Link to post Share on other sites
diraven 10 Posted July 28, 2011 (edited) Both issues are fixed in the next version. It will let you know there is braces mismatch, but for now not able to tell you where the problem is, it will just highlight the first line of the script and tell "(location unknown)". Not really great, but better then nothing. UPD: It will try to guess the mismatched brace position, but location may not be 100% precise. Edited July 28, 2011 by DiRaven Share this post Link to post Share on other sites
diraven 10 Posted August 18, 2011 0.1.3 released. [FIX] "waitUntil {true;" case will be reported as an error, Skufer will try to guess the location of the braces mismatch error, but this location may not be 100% precise. [FIX] "waitUntil {true};" now will not be reported as an error. ---------- Post added at 12:25 PM ---------- Previous post was at 12:19 PM ---------- Still trying to sort out the code folding and autoformatting. Netbeans lacks user-friendly documentation. =) Share this post Link to post Share on other sites
jedra 11 Posted August 18, 2011 (edited) cool - will check out the new version. I really like this IDE. EDIT ---> Small request - any chance you could get it to update if there is a version still installed? Save me having to unistall it first. Not a biggie of course! Edited August 18, 2011 by Jedra Share this post Link to post Share on other sites
diraven 10 Posted August 18, 2011 cool - will check out the new version. I really like this IDE.EDIT ---> Small request - any chance you could get it to update if there is a version still installed? Save me having to unistall it first. Not a biggie of course! There are few options to make reinstalling go away, but neither of them is easy, so that's not the matter of the nearest future. Anyways all the config files are untouched unless you explicitly set them to be deleted during the uninstall. Share this post Link to post Share on other sites
jedra 11 Posted August 18, 2011 There are few options to make reinstalling go away, but neither of them is easy, so that's not the matter of the nearest future. Anyways all the config files are untouched unless you explicitly set them to be deleted during the uninstall. OK, no worries - I did notice that the options was there not to delete the config so that's cool. I am using this pretty much all the time now, just the occasional trip back to Squint for in-depth checking. Share this post Link to post Share on other sites
diraven 10 Posted September 1, 2011 (edited) Ok, there are actually few ways of extending the IDE right now: 1. Keep trying to implement code folding/autoformatting - looks like a dead end for me rignt now. I'll keep searching for info and trying, but for now no progress made. 2. Work on the contextual code completion and extended contextual error reporting (like Squint does) - a whole bunch of work, actually. Not the matter of few days. 3. Incorporate few useful 3rd-party tools (optimizers, checkers etc.) into the IDE to make it more like an IDE - that is simpler task. 4. Add more filetypes support. SQS, EXT, SQM. Any ideas? What would you like to be done first? Edited September 1, 2011 by DiRaven Share this post Link to post Share on other sites
.kju 3245 Posted September 2, 2011 My take: 3, 2, 1, 4 (lowest prio) :) Share this post Link to post Share on other sites
diraven 10 Posted September 4, 2011 My take: 3, 2, 1, 4 (lowest prio) :) Well since no other ideas written - I'll take it. Thanks. Share this post Link to post Share on other sites
wolffy.au 9 Posted October 1, 2011 Any screenshots bud? Looks promising but I'd like to see the layout before I go installed all the JDK stuff on my pristine new computer install. :) Share this post Link to post Share on other sites
diraven 10 Posted October 2, 2011 Any screenshots bud? Looks promising but I'd like to see the layout before I go installed all the JDK stuff on my pristine new computer install. :) Yes, of course. Here is the main window. Looks pretty much like any other NB IDE'ish thing. =) Share this post Link to post Share on other sites
diraven 10 Posted November 3, 2011 Sorry for no updates - I've got a huge project to work with and still trying to write my own small game. =) No updates has one important advantage - there are no new bugs. xD Since someone downloaded this thing and may be even using it - I'll take time to add some new features, but not right now. Share this post Link to post Share on other sites
DenVdmj 0 Posted November 7, 2011 (many screens) We can't have the same approach to the interpreted language with dynamic typing, as to the usual C++. In terms of sqf-compiler, the following (obviously wrong) expressions are valid: 123 = qwe / player // check: compile "123 = qwe / player" Why try to be smarter than the compiler? The language doesn't have syntactic structures such as: "if the else" or "while do", these are just the several operators, such as "-", "+". But let's look further: the following expressions are valid (also) in terms of semantics (correct, in fact): _printHello = { diag_log "Hello!" }; _for_i = for "_i"; _for_i_from_1 = _for_i from 1; _do_ten_times = _for_i_from_1 to 10; _do_ten_times do _printHello; ((( for "_i" ) from 10 ) to 12 ) do { player sideChat str _i } _always = if true; _never = if false; // almost from real code: // caseignored "in": if (_regionType in _requestedTypes) then { ... } { if (_x == _regionType) exitwith { _always }; _never } foreach _requestedTypes then { _distance = getArray (_cfgRegion >> "position") distance _position; if (_distance < _minDistance) then { _minDistance = _distance; _nearestRegion = _cfgRegion; }; }; _print_a_is_a = { hint "a is a" }; _print_a_isnt_a = { hint "a is not a" }; (switch a) call { _this do { case "a" : _always; default _never; } } call { _this then (_print_a_is_a else _print_a_isnt_a) }; How do you test it? In all other respects - a very useful tool! PS. sorry for my lang Share this post Link to post Share on other sites
diraven 10 Posted November 7, 2011 (edited) The language is ok, but to be honest I didn't really get what the problem is. I understand that lexer/parser gives wrong output while lexing the code? And you have just given few examples showing the code that works in-game (i.e. Arma compiler takes it and processes it) while my lexer/parser says it wrong, right? ---------- Post added at 01:23 PM ---------- Previous post was at 12:25 PM ---------- I guess first problem - my parser does not know what is >>. I'll fix that. Second, is there any real task that would need inputs like: 123 = qwe / player or ((( for "_i" ) from 10 ) to 12 ) do { player sideChat str _i } ? I understand that they may be valid in terms of semantics, but is there any real need to write ((( for "_i" ) from 10 ) to 12 ) do { player sideChat str _i } instead of justfor "_i" from 10 to 12 do { player sideChat str _i }? Just to add this specific case I'll need either disable if-then-else checks, that may be resould in having code with incorrect statements rendered as valid, or add high level parser rules to make sure this is handled. Just need to know if this is worth of time spent. Edited November 7, 2011 by DiRaven Share this post Link to post Share on other sites