Jump to content
K-Town

Arma Intellij Plugin - Smart Editing for Header and SQF Files

Recommended Posts

Hello. Is there any way to make analyser does not treat absence of a comma at the end of scope as error? For example:

Fn_Gear_IsThrowable = {	
	private _cfa = configFile >> "CfgAmmo" >> getText(configFile >> "CfgMagazines" >> _this >> "ammo");
	while {true} do {
		if (not isClass _cfa or {configName _cfa isEqualTo "GrenadeHand"}) exitWith {isClass _cfa};
		_cfa = inheritsFrom _cfa} //legal code, but analyser reporting error here
};

Share this post


Link to post
Share on other sites

 

Hello. Is there any way to make analyser does not treat absence of a comma at the end of scope as error? For example:

Fn_Gear_IsThrowable = {	
	private _cfa = configFile >> "CfgAmmo" >> getText(configFile >> "CfgMagazines" >> _this >> "ammo");
	while {true} do {
		if (not isClass _cfa or {configName _cfa isEqualTo "GrenadeHand"}) exitWith {isClass _cfa};
		_cfa = inheritsFrom _cfa} //legal code, but analyser reporting error here
};

All assignments in the plugin require to end with a semicolon.

_cfa = inheritsFrom _cfa;

Share this post


Link to post
Share on other sites

is there some way to change this behavior for cases when a semicolon is not obligatory?

Share this post


Link to post
Share on other sites

is there some way to change this behavior for cases when a semicolon is not obligatory?

There is not a way. Allowing the semicolon to not be required every time would make the syntax checking implementation immensely messier and may create even more false-positive errors. I also believe that not requiring a semicolon sometimes (except return statements) is just messy coding.

Share this post


Link to post
Share on other sites

I have no update for today as I'm still working on the dialog creator. I plan on releasing a major update to the plugin at the same time as well. No word on release dates yet as much is still very early in development.

 

I'm really just here to get some feedback on the look/feel of the dialog creator UI. I want it to be as user-friendly as possible. All that I have at the moment is a basic UI with some functionality to move controls/components in the canvas. A lot of what you are about to see is subject to change, but I want to make sure I'm heading in the right direction. Also, the dark theme is optional.

 

The orange box is user-created control and has no text.

BEdHoGu.jpg

  • Like 1

Share this post


Link to post
Share on other sites

Hey guys and gals, I've got a small development update since it's been a while since a release. I've made great progress on the dialog creator that will come with the plugin (there will be a standalone version as well). The Intellij plugin is getting some nifty features that deal with function documentation. Along with those features, the plugin got a near complete rewrite of the syntax checking grammar. The new grammar will allow finding usages of commands and will also bring about the removal of "keyword" commands like if and params.

 

I'm planning releasing the new version of the plugin on July 11 (same date as Arma 3 Apex release). I'm unsure if that's when the dialog creator will be released, but I'm confident I'll have a "beta" by that time. Thank you everyone for your patience and I hope you enjoy the newest release.

  • Like 3

Share this post


Link to post
Share on other sites

I do not know if this is is already fixed, or if I did something wrong but I have got this error:

 

FXEW6BI.png

 

Line 35FF

while {true} do {
//Other things ...
};

Any idea why he throws me that error when ever using a while true loop?

 

 

Regards Arkensor

Share this post


Link to post
Share on other sites

I do not know if this is is already fixed, or if I did something wrong but I have got this error:

 

FXEW6BI.png

 

 

That is the strangest error. There was a similar error reported here and it says I've fixed it and I can't reproduce what you are having, so I think it is fixed. 

  • Like 1

Share this post


Link to post
Share on other sites

Hello everyone. I decided to release 1.0.4 a day early. Anyone that already has the plugin should be notified of an update the next time you open Intellij. You can also get the newest version here: https://github.com/kayler-renslow/arma-intellij-plugin/releases

 

I hit a major burnout some time ago, which prevented me from having a stable beta version of the dialog creator. I would rather wait to release a stable beta than release a useless alpha prematurely.

 

Enjoy the release and report any bugs you encounter here.

  • Like 2

Share this post


Link to post
Share on other sites

Quick update: do not use 1.0.4. It has a major bug which I didn't catch in testing. The bug will make Intellij basically unusable as it is very slow. For now, stick to 1.0.3. I will post an update when this issue has been resolved. Thanks.

  • Like 1

Share this post


Link to post
Share on other sites

Hey guys and gals. The new version, 1.0.4_1 (not to be confused with 1.0.4), has been released.

The main change is that editing SQF won't freeze Intellij! Thank goodness the issue was not that complicated, which I deeply feared it was very complicated.

This version also fixes the issue of not having negative numbers (issue only from 1.0.4). I also included a change such that _forEachIndex will not be marked as uninitialized as it is a "magic variable". Also, I fixed a long standing issue where making a variable private by the intention fix didn't make use of an already existing private declaration.

 

I removed the download for 1.0.4. Unless you already have the .jar, the .jar is non-accessible. Get the newest release here (1.0.4_1) and enjoy Apex! :D

  • Like 2

Share this post


Link to post
Share on other sites
if(Something || {something else}) then {

};

He marks this as an error, even though it is ledgit sqf syntax. 

 

Expected, got ')'. Error in line XXX

Share this post


Link to post
Share on other sites
if(Something || {something else}) then {

};

He marks this as an error, even though it is ledgit sqf syntax. 

 

Expected, got ')'. Error in line XXX

 

This has already been reported and fixed. Please post bugs on the github repo.

Share this post


Link to post
Share on other sites

I'm not going to fix that because it is messy. Just assign _isValidWork inside the loop.

_isValidWork = false;
{
    if (side _x == west || side _x == east) exitWith {_isValidWork = true;};
} forEach (player nearEntities ["Man", 100]);

I'm beginning to question the point of this plugin again. I don't really see the point in spending time on providing features for a language that has so little of a syntax that you can't even tell if the code was intended to work or not. I mean, seriously. Assigning a variable to a loop? That makes no sense at all....

actually, that is supposed to work

problem: it works because of the exitWith and only because of the exitWith

 

exitWith will exit current scope with given result

foreach however, should not return anything --> nil or generic error

 

the thing in questions thus is: does foreach really returns something?

the exitWith syntax however, is totally fine

 

 

problem in the end with SQF still is: the syntax actually has nothign to do with its control structures

 

syntax of SQF:

  • private <LOCALIDENT> = <EXPRESSION>;
  • <IDENT> = <EXPRESSION>;
  • <EXPRESSION>;

 

and that is pretty much it

Share this post


Link to post
Share on other sites

actually, that is supposed to work

problem: it works because of the exitWith and only because of the exitWith

 

exitWith will exit current scope with given result

foreach however, should not return anything --> nil or generic error

 

the thing in questions thus is: does foreach really returns something?

the exitWith syntax however, is totally fine

 

 

problem in the end with SQF still is: the syntax actually has nothign to do with its control structures

 

syntax of SQF:

  • private <LOCALIDENT> = <EXPRESSION>;
  • <IDENT> = <EXPRESSION>;
  • <EXPRESSION>;

 

and that is pretty much it

I fixed the false positive with 1.0.4 which was released almost 10 days ago.

Share this post


Link to post
Share on other sites

Hey there,

when will the new version be released with the already pushed fixes?

Regards Arkensor

Share this post


Link to post
Share on other sites

Hey there,

when will the new version be released with the already pushed fixes?

Regards Arkensor

I would like to do one this weekend. I was allowing some time in between releases to increase probability of catching more bugs so that the releases are less frequent and more stable. After this weekend's release, I don't plan on having another release until the dialog creator is in open beta (unless there is a substantial issue with the next release of course). I'm not sure when the dialog creator release will happen, but I'll likely have something by the end of the month that is just barely useful. Barely useful being: creating dialogs, manipulating controls, preview for some controls, and export but no import.

  • Like 1

Share this post


Link to post
Share on other sites

Version 1.0.5 has been released. Most of the changes include bug fixes described on the GitHub issues page. I'm going to be taking a break on the plugin for a good while (likely a whole month). I barely made it through this release and I don't want to make myself miserable.

 

However, I'm still pretty stoked about the dialog creator I've been teasing for some time now and it's still in full development. I've already noticed some people cloning the repo and likely testing it out. I would recommend not doing that because I love to leave in lots of random testing code everywhere and it may be creating lots of mysterious files on your computer (nothing harmful I may add). If you are curious to where the files may be appearing, check your My Documents folder and look in the folder "Arma Dialog Creator" (no mysterious files will appear with any version of the plugin, however).

 

As soon as late-August comes around, my productivity on the plugin and dialog creator will drop tremendously due to college. If you have any suggestions to what you absolutely want as a feature in the plugin, let me know! It's easier to work on one feature rather than the larger picture.

 

Thanks to everyone who have been reporting bugs and to those being patient for the plugin to get better and more useful. I enjoy the challenge of doing everything myself, but it's definitely not very practical.

  • Like 2

Share this post


Link to post
Share on other sites

Version 1.0.5_1 has been released. I'm still taking a pseudo-break from the plugin so there aren't any new features with this release. Visit the releases page to acquire the update.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for the fix :)

I tried 1.0.5 but it prevented IntelliJ 2016.2 from starting a new project. 1.0.5_1 works as expected so far.

Share this post


Link to post
Share on other sites

Version 1.0.5_2 has been released. It contains fixes to bugs I would have never figured out if it weren't for the peeps submitting bug reports. Thanks to those who are submitting!

I'm still on my hiatus with the plugin, but these bugs were too extreme to not post a hot fix for.

  • Like 2

Share this post


Link to post
Share on other sites

Small development update.

 

I'm beginning to come out of the development-halt for this plugin. I'm unsure of when the next release will be, but I would love to finish up what I have with the Dialog Creator I've been working on for several months now. It never occurred to me how big the project actually was going to be until a month ago. I'm still not confident on any "release date" for the dialog creator, but I can tell you that I will have something by Thanksgiving (unless I have another mental breakdown this year). Instead of pushing a beta, I'm actually just going full steam ahead on a full release. The dialog creator is definitely the biggest project I've ever worked on (roughly 15,000 lines of code spanned across 238 .java files) and will (hopefully) revolutionize the Arma Modding Community.

 

Thanks everyone for being patient. :)

  • Like 2

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×