1. Head to the 33rd Modeling Contest Poll and drink to your heart's desire.
    Dismiss Notice
  2. Choose your means of doom in the 17th Mini Mapping Contest Poll.
    Dismiss Notice
  3. A slave to two rhythms, the 22nd Terraining Contest is here.
    Dismiss Notice
  4. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  5. The die is cast - the 6th Melee Mapping Contest results have been announced. Onward to the Hive Cup!
    Dismiss Notice
  6. The glory of the 20th Icon Contest is yours for the taking!
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

vJass suggestions

Discussion in 'The Lab' started by Deleted member 219079, Nov 28, 2014.

  1. I dunno if there's anyone with the source code of jasshelper in the business anymore, but here's a list of possible improvements/changes :)

    Better coding environment:
    • When you start typing e.g. after
      call 
      , the editor would open up a list of functions, including your own functions.
      Smart recommendations: This list would of course exclude the functions that could not be used in that connection, e.g.
      set myGlobalUnit = 
      would only recommend functions that return unit.
      List open hotkey: Control + space would force the list to show up.
      Non-functions included: When the context is right, the list could also include globals and vanilla globals.​
    • Less JASS2-like syntax, e.g.
      static method create takes nothing returns thistype
      -->
      static thistype ()
      and
      private method destroy takes nothing returns nothing
      -->
      private void destroy ()
      . Also the curly brackets would be nice :)
    • Link parsing: When control is hold, website links in the trigger would get blue and underlined. When clicked while control is hold, it would open the link in the system's default browser.
    Better capabilities:
    • Module arguments, for example
      implement MyModule(myUnit,myPlayer)
      , when referring to
      module MyModule takes unit u, player p
      .
      Constant requirement: When the module
      takes constant unit u, constant player p
      , it would only accept constant values.​
    • Read only - globals,
      readonly unit U
      . Libraries/scopes outside of the library/scope couldn't reassign the global, but could still read the value.
    • Code (vJASS):
      inline GetUnitIndex takes unit u returns integer
          GetUnitId(u)
      endinline

      So if you happen to use Nes' UI instead of the Perfect Unit Indexer, you could add such thing at the beginning of the trigger.
    • unit myGlobalUnit
      -->
      public unit myGlobalUnit
      and
      private unit myGlobalUnit
      -->
      unit myGlobalUnit
      , members/globals/methods should be private by default.

    Will add more when comes in mind :)
     
  2. edo494

    edo494

    Joined:
    Apr 16, 2012
    Messages:
    3,846
    Resources:
    5
    Spells:
    1
    JASS:
    4
    Resources:
    5
    this has nothing to do with vJass per se

    noone is going to implement this, because it would require so much real time parsing that you could actually really slow down the editor.

    Even giants like Microsoft didnt implement something like this in IntelliSense.

    already implemented as far as I can tell by Looking for help.

    again, TESH related issue, not vJass

    I highly disagree with this, but this is just matter of opinion.

    I also dont know what you imagine in module taking arguments, thats what textmacro is for.
     
  3. Why aren't you constructive/supportive at all?

    Since you probably expect me to answer somehow with arguments (that's the hive way lol...):

    It was under "Better coding environment".

    Still Wurst has it, weird... I think Wurst is a product from the future then :O

    Hm, sounds cool :)
    Can you link?

    It was under "Better coding environment".

    Since most of globals are private, this could save yo fingers a little :)

    Why "highly"?

    Textmacros are cool yes, and I'll use them as long as modules are as flat as they're now.

    What's so bad about modules taking arguments? You wouldn't be forced to use them, after all. You could use the modules as they're right now.

    And about your possible counter argument "It's under coding environment, but the title read "vJass suggestions"": Coding environment is a big part of vJass. I wouldn't be using vJass if there was no colorizer or multiple trigger support. You can even go smartass and say if there was no mouse or keyboard support.

    But if you really insist me to remove the module argument thing because of textmacros, say so and I can remove them from the list, not like it's a big thing to do.

    So yeah, anyone is free to add their suggestions too!
     
  4. edo494

    edo494

    Joined:
    Apr 16, 2012
    Messages:
    3,846
    Resources:
    5
    Spells:
    1
    JASS:
    4
    Resources:
    5
    well I wanted to argue with that but you have beaten me to it :D

    No I dont insist on anything, your suggestions are yours, I am not here to judge them, just criticise.

    Also I never said modules with arguments are bad, I just cant see a way one would use them, or how would they function(eg. the argument usage)
     
  5. looking_for_help

    looking_for_help

    Joined:
    Dec 12, 2012
    Messages:
    973
    Resources:
    5
    Spells:
    2
    JASS:
    3
    Resources:
    5
    New TESH.

    Implementing link parsing for urls can be done quite easily and I can include that into one of the next updates if you want to. CTRL-Space (and some more improvements) are already implemented there. However the dynamic part (user functions, variables, etc.) is very hard in the hacky environment of the TESH. Might come in the future, but there are many problems to be solved first.

    You might split your suggestions then into a "vJass part" (this thread, or maybe in the Jass Newgen Pack 2.0.X by moyackx) and an IDE/Editor part (you could use the linked TESH thread for further suggestions on that). Because the vJass compiler and the TESH are really two different tools and not really related to each other.
     
  6. It's a minor thing, but since urls are quite common in libaries with requirements, it feels like natural to have such feature in WE.

    Yeah they really are..

    Was just collecting my thoughts here, but I might as well post onto those threads somewhere in the future.

    By the way, why the pause on updates?
     
  7. looking_for_help

    looking_for_help

    Joined:
    Dec 12, 2012
    Messages:
    973
    Resources:
    5
    Spells:
    2
    JASS:
    3
    Resources:
    5
    I will see what I can do then.


    I don't get paid for this, you know ;)

    However I have some more free time soon and the tesh will be continued.
     
  8. If you ask permission from mods, you can add a PayPal link to the thread.

    ( But I'm not allowed to spend money online so don't count on me :/ )
     
  9. gorillabull

    gorillabull

    Joined:
    Jul 17, 2011
    Messages:
    1,368
    Resources:
    2
    Spells:
    2
    Resources:
    2
    if he does that he will get sued by blizzard, which in term will use the money from the trail to release more in game creatures as mounts with a saddle attachment
     
  10. looking_for_help

    looking_for_help

    Joined:
    Dec 12, 2012
    Messages:
    973
    Resources:
    5
    Spells:
    2
    JASS:
    3
    Resources:
    5
    I think you misunderstood ;)

    Its not that I want money for that. I'm just doing this in my free time, so you can't expect updates as regular as in professional software, thats all.

    Though I'm always open for new feature suggestions, so if you have more on your wish list, feel free to post them.

    :D
     
  11. Sigh, I just lost update to the OP, but in short:

    Remove global block declaration: useless.

    Add
    ;
    support, where jasshelper would turn ; into a line break.

    Remove
    set
    : useless.
     
  12. Arhowk

    Arhowk

    Joined:
    Aug 8, 2007
    Messages:
    2,752
    Resources:
    0
    Resources:
    0
    http://cjass.xgm.guru/
     
  13. I have acidhelper on my WE installed, but hive doesn't support it as official syntax :( So it'd be better to have those fatures on vjAss too
     
  14. More!
    1. No need to write
    I2S , R2I , I2R
    etc. just to add some fake dynamism. Also better looking code
    2.
    for
    structure. E.g.
    for(integer i=0;i<10;i=i+1) ... endfor
    so it would need a local integer i, if it doesn't exist jasshelper will create such variable at the local declaration block. The second section is the exitwhen statement, and the last one is the bottom-most action of the loop.
    2.1
    while
    structure. Would only add an exitwhen as top-most action in the loop.​
    3. Agent methods, in a fashion such as
    unit.getId
    . Just like in Wurst. It creates cleaner code imo.

    Wurst may fit my preferrings more, but their Eclipse thing is ridiculous. I refuse to use their shit until it's less shit.

    About the ; , it's very easy to implement, just make jasshelper replace it with line break.
     
  15. IcemanBo

    IcemanBo

    Joined:
    Sep 6, 2013
    Messages:
    6,532
    Resources:
    23
    Maps:
    3
    Spells:
    11
    Template:
    1
    Tutorials:
    5
    JASS:
    3
    Resources:
    23
    This thread is for.... ?^^ I mean, I'm interested if you want to implement your own JassHelper into editor, or who should work with these suggestions?
     
  16. I have the gold parser but I don't understand s*it from it :/
     
  17. Gismo359

    Gismo359

    Joined:
    Jul 14, 2011
    Messages:
    780
    Resources:
    44
    Packs:
    4
    Maps:
    40
    Resources:
    44
    There is a source code uploaded somewhere, someone even made a bugfix recently on blizzardmodding (something about struct deallocation I think it was). He also had source code there too.

    Isnt that already implemented in Cohadar' jasshelper(or was it zinc?)?
     
  18. edo494

    edo494

    Joined:
    Apr 16, 2012
    Messages:
    3,846
    Resources:
    5
    Spells:
    1
    JASS:
    4
    Resources:
    5
    its in zinc, cohadar's for structure is the same as in Wurst or PHP(for A in B).

    Also zinc's syntax is not exactly like that either
     
  19. looking_for_help

    looking_for_help

    Joined:
    Dec 12, 2012
    Messages:
    973
    Resources:
    5
    Spells:
    2
    JASS:
    3
    Resources:
    5
    Why exactly?

    It gives you everything you are asking for and much more. You just have to install Eclipse and set up the plug-in which takes about 5 minutes (maybe 10 if you are doing this for the first time).

    Although your suggestions are comprehensible, it doesn't really make sense to post a big wish list here, because nobody is working on such things...
     
  20. No no I have Eclipse running and working and Wurst well set up. I'm fed up with how complicated it is to set it up.

    Then there's the Wurst WE, it doesn't on the other hand work...

    Why can't they just make a plugin for NewGen WE like Cohadar did? Why go full outcast?