1. Post #1
    cpf
    cpf's Avatar
    November 2007
    343 Posts




    Stuff that's done:
    [LIST][*]Full support for all default gmod libraries & functions[*]Options (not pictured) to enable/disable various elements (esp. those images)[*]Click on the tooltip to go to the wiki[*]Works in most applications that don't do text entry weirdly (notepad++,notepad, the windows 7 start bar)[*]OK just look at the video[/LIST]
    Stuff that I'm working on:
    [LIST=1][*]Text wrapping in the tooltip[*]More reliable[*]More graphics[*]Other stuff[/LIST]
    Stuff that I could do if this was integrated into an actual editor:
    [LIST][*]Better performance & usability all around[*]Scanning your code (yes that's right, your code) for functions[/LIST]
    Stuff that will almost probably never happen so don't ask:
    [LIST][*]Objects/Tables and their (metatable or otherwise) functions (avector:Function)[/LIST]Suggestions?
    Reply With Quote Edit / Delete Reply Canada Show Events Friendly x 90Useful x 24Winner x 5Lua King x 4Agree x 1Artistic x 1Lua Helper x 1 (list)

  2. Post #2
    Rambo_9's Avatar
    December 2009
    1,010 Posts
    nice.

    my current notepadd++ setup is absolute garbage. The function list on the right hand side doesn't work and the autocomplete is a pain in the ass.

    I would gladly switch to this if you could get function listing working. it makes working on bigger files easier.
    Reply With Quote Edit / Delete Reply China Show Events Agree Agree x 1 (list)

  3. Post #3
    Gold Member
    Alex_grist's Avatar
    January 2007
    1,072 Posts
    Oh wow.

    Would love to have this in my Notepad++, would make my life so much easier.
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Agree Agree x 8 (list)

  4. Post #4
    Gold Member
    Gbps's Avatar
    December 2008
    3,641 Posts
    :worship::worship::worship::worship:

    I cannot bare any more time before a release.

    Edited:

    Can I have your children, just saying.

    Edited:

    Rate OP a heart.
    Reply With Quote Edit / Delete Reply United States Show Events Agree x 6Dumb x 2Bad Spelling x 1Funny x 1Friendly x 1Disagree x 1 (list)

  5. Post #5
    Gold Member
    nicatronTg's Avatar
    July 2009
    4,698 Posts
    Wow, I would stop :bang: if I had this. Release soon, please!
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 1Funny Funny x 1 (list)

  6. Post #6
    Gold Member
    Crazy Quebec's Avatar
    May 2008
    2,449 Posts
    Hmm this looks pretty cool but how dependent is it on the lua function template of the wiki staying the same?

    Also could you do the following :
    - Autocomplete for ENT:, GM: and SWEP: hooks. It's a static prefix so it shouldn't be too hard.
    - If possible an auto-complete for certain functions such as hook.Add (Would list gamemode hooks).

    Oh and if you're feeling extremely fancy you could add support for pseudo "doc strings" in the form of comments exactly one line after the function's declaration. You could then display that in the tooltip for those functions.

  7. Post #7
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    Hmm this looks pretty cool but how dependent is it on the lua function template of the wiki staying the same?

    Also could you do the following :
    - Autocomplete for ENT:, GM: and SWEP: hooks. It's a static prefix so it shouldn't be too hard.
    - If possible an auto-complete for certain functions such as hook.Add (Would list gamemode hooks).

    Oh and if you're feeling extremely fancy you could add support for pseudo "doc strings" in the form of comments exactly one line after the function's declaration. You could then display that in the tooltip for those functions.
    1st I can do fairly easily, 2nd I think I'll rewrite the display logic (oh joy) so it's less coupled with the current means of watching keystrokes and could work better in an editor. Oh and be less of a disaster.
    Reply With Quote Edit / Delete Reply Canada Show Events Informative Informative x 1 (list)

  8. Post #8
    Whitewater's Avatar
    December 2008
    190 Posts
    It looks like it will be fantastic, but I have a bit of a strange request...

    In most intellisense systems (That I have used), you have to type out your function, then hit enter, then continue.
    In this one, will it be possible to just barrel on past with a ( or something? Because hitting enter after every single function name would be annoying. Sometimes one can't recall a function name, sometimes one can't recall whether the number or string goes first.

    Anyway, looks like it'll be a great benefit.
    Reply With Quote Edit / Delete Reply United States Show Events Lua King Lua King x 1 (list)

  9. Post #9
    Taught by John Lua
    MakeR's Avatar
    May 2007
    2,914 Posts
    This looks really useful!
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Agree Agree x 2 (list)

  10. Post #10
    Gold Member
    aVoN's Avatar
    December 2005
    2,880 Posts
    nice.

    my current notepadd++ setup is absolute garbage. The function list on the right hand side doesn't work and the autocomplete is a pain in the ass.

    I would gladly switch to this if you could get function listing working. it makes working on bigger files easier.
    Working function-list for you: http://www.facepunch.com/showpost.ph...&postcount=106
    Reply With Quote Edit / Delete Reply Germany Show Events Friendly Friendly x 3 (list)

  11. Post #11
    I love Lemon Punch
    Sakarias88's Avatar
    January 2006
    1,268 Posts
    Have been longing for something like this.
    Looks really good.
    Reply With Quote Edit / Delete Reply Sweden Show Events Agree Agree x 1 (list)

  12. Post #12
    metromod.net
    ChewGum's Avatar
    October 2007
    1,128 Posts
    I like it. Don't give up on it like the others.
    Reply With Quote Edit / Delete Reply Sweden Show Events Agree Agree x 1 (list)

  13. Post #13
    gamer_lv's Avatar
    November 2007
    121 Posts
    This looks awesome, Exactly what I could use.
    This will probable same me about 50 trips to wiki.garrysmod.com when coding ( I keep forgetting where to put capitals)
    Reply With Quote Edit / Delete Reply Netherlands Show Events Bad Spelling Bad Spelling x 1Agree Agree x 1 (list)

  14. Post #14
    |King Flawless|'s Avatar
    February 2010
    712 Posts
    This is epic I want it now!

  15. Post #15
    Gold Member
    Metanoia's Avatar
    September 2005
    1,354 Posts
    I've never used any sort of auto-complete for LUA stuff. This looks great.

  16. Post #16
    yakahughes's Avatar
    April 2008
    1,318 Posts
    I've never used any sort of auto-complete for LUA stuff. This looks great.
    It's not LUA, it's lua. It's a word, not an acronym, people don't go around saying "Look at the beautiful MOON tonight."

    This looks extremely awesome and please finish it. Also, I read
    Objects/Tables and their (metatable or otherwise) functions (avector:Function)
    I'm not sure, but does that mean the thing won't recognize functions that you have written in the code? For instance, if you write a function in a C++ project in MSVC, and then you do the name of your function later in the code, and hit (, it will show you the arguments for the function. Will this do that, or did the quote above mean that that won't happen?
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 11Agree Agree x 2 (list)

  17. Post #17
    Taught by John Lua
    MakeR's Avatar
    May 2007
    2,914 Posts
    It's not LUA, it's lua. It's a word, not an acronym, people don't go around saying "Look at the beautiful MOON tonight.
    It's Lua, not lua. It is a noun.
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Funny Funny x 11Agree Agree x 7Zing Zing x 3Dumb Dumb x 1 (list)

  18. Post #18
    Mastermind26's Avatar
    June 2008
    194 Posts
    awesome! I cant wait for this!

  19. Post #19
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    Clarification: lua is a pain to parse (compared to c/++/#) so I won't be writing anything to parse your file and determin that local variable "mxv" is a color. I might be able to parse user defined global tables (Evolve.doStuff() eg) but probably only if this was integrated into an editor (so I could scan all project files and read unsaved file contents). Until then it's only predefined libraries (default ones or ones you add yourself-there's an editor).

  20. Post #20
    Gold Member
    Lexic's Avatar
    March 2009
    6,123 Posts
    Well as long as we can add our own without too much fuss then there's no real problem. How does this work at the moment then, if it's not attached to an editor?
    I mean, I'd like that in np++, but not for random popups to appear while writing a blog post or whatever.

  21. Post #21
    Everyone has a $1 title
    Skipcast's Avatar
    November 2008
    7,068 Posts
    So when will you be able to release this? :3:

    It would make learning lua MUCH easier

  22. Post #22
    [TG]Chief(Alex)'s Avatar
    December 2009
    127 Posts
    I need this! Just release it already! :P
    Reply With Quote Edit / Delete Reply Norway Show Events Disagree Disagree x 1Dumb Dumb x 1 (list)

  23. Post #23
    Steins;Gate SUCKS
    Dave_Parker's Avatar
    October 2008
    5,020 Posts
    Yeah, just release something unfinished already!
    Reply With Quote Edit / Delete Reply Netherlands Show Events Disagree Disagree x 1Agree Agree x 1Dumb Dumb x 1 (list)

  24. Post #24
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    Well as long as we can add our own without too much fuss then there's no real problem. How does this work at the moment then, if it's not attached to an editor?
    I mean, I'd like that in np++, but not for random popups to appear while writing a blog post or whatever.
    You can set which windows it's active in (by title).

  25. Post #25
    Chill Moderator
    Grea$eMonkey's Avatar
    May 2007
    6,302 Posts
    This looks awesome.
    Reply With Quote Edit / Delete Reply United States Show Events Agree Agree x 2Dumb Dumb x 1 (list)

  26. Post #26
    Gold Member
    Kogitsune's Avatar
    September 2005
    2,829 Posts
    What does your functions list look like?

    If it isn't too much trouble, it might be a good idea to do it via xml like the summary tags in Visual Studio.

    Code:
    <summary>
      <function library="concommand" name="Add" >
        <param name="command_name" datatype="string" desc="The unique name of the console command" />
        <param name="callback_function" datatype="function" desc="The function called when the command is run" />
        <param name="autocomplete_function" datatype="function:table:string" optional=1 />
        <returns>nil</returns>
        <description>Creates a console command that runs the given function</description>
        <remarks>Warnings/tricks here if needed</remarks>
      </function>
    </summary>
    It's a mess because I'm just whipping together an example and could probably be ordered better. I feel something like the above would take some time to implement, but would allow you a more friendly experience, especially if you detect which argument you are currently entering and show the description text, which in theory should be as simple as counting commas not inside strings.

    Regardless of if you implement it or not, this looks really good so far =).

  27. Post #27
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    This is what one looks like atm (beat you to the XML)
    Code:
    <Item ID="2482" Name="ents" AvailableOn="SHARED" IsLib="true">
          <Children>
            <Function ID="2483" Name="Create" AvailableOn="SHARED" Parent="2482" Desc="This example spawns an angry zombie in front of the first player in the server (Usually you!).">
              <Params>
                <Parameter Type="String" Name="entity class" />
              </Params>
              <ReturnVal Type="Entity" Name="" />
            </Function>
            <Function ID="2484" Name="FindByClass" AvailableOn="SHARED" Parent="2482" Desc="This example finds all of the npcs in the map">
              <Params>
                <Parameter Type="String" Name="class name" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2485" Name="FindByModel" AvailableOn="SERVER" Parent="2482" Desc="This example finds all the entities with the huge chimney model">
              <Params>
                <Parameter Type="String" Name="model name" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2486" Name="FindByName" AvailableOn="SERVER" Parent="2482" Desc="This example finds all the entities with the target-name &amp;quot;bill&amp;quot;">
              <Params>
                <Parameter Type="String" Name="name" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2487" Name="FindInBox" AvailableOn="SHARED" Parent="2482" Desc="This example finds all the entities near the origin of the map">
              <Params>
                <Parameter Type="Vector" Name="min" />
                <Parameter Type="Vector" Name="max" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2488" Name="FindInCone" AvailableOn="SHARED" Parent="2482" Desc="Kills any NPCs in the SWEP's viewcone.">
              <Params>
                <Parameter Type="Vector" Name="Pos" />
                <Parameter Type="Vector" Name="Dir" />
                <Parameter Type="Float" Name="Distance" />
                <Parameter Type="Float" Name="Radius" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2489" Name="FindInSphere" AvailableOn="SHARED" Parent="2482" Desc="This example finds all the entities whose distance from the origin is less than 32 from map coordinate 0,0,0.">
              <Params>
                <Parameter Type="Vector" Name="center" />
                <Parameter Type="Number" Name="radius" />
              </Params>
              <ReturnVal Type="Table" Name=": {{Arg|Entity}}" />
            </Function>
            <Function ID="2490" Name="GetAll" AvailableOn="SHARED" Parent="2482" Desc="Prints the class of every entity in the map">
              <Params />
              <ReturnVal Type="Table" Name="of {{Arg|Entity}} objects." />
            </Function>
            <Function ID="2491" Name="GetByIndex" AvailableOn="SHARED" Parent="2482" Desc="This example finds the 96th entity object">
              <Params>
                <Parameter Type="Integer" Name="index" />
              </Params>
              <ReturnVal Type="Entity" Name="" />
            </Function>
          </Children>
        </Item>
    Yes, there is a completely legitimate reasons for the IDs on everything. The database itself is culled from the wiki (ofc).
    @Parameter descriptions and remarks: The wiki has none, but I am doing VS-style highligting of the current parameter.

  28. Post #28
    Gold Member
    Metanoia's Avatar
    September 2005
    1,354 Posts
    It's not LUA, it's lua. It's a word, not an acronym, people don't go around saying "Look at the beautiful MOON tonight."
    A part of me wants to keep capitalizing it just to piss off pedants

    Another part of me wants to keep capitalizing it because this forum is called "LUA Scripting", so I see it capitalized every day and I'm used to it.

    And about 2% of me actually cares about spelling it properly
    Reply With Quote Edit / Delete Reply Mexico Show Events Dumb Dumb x 3Agree Agree x 3 (list)

  29. Post #29
    Chill Moderator
    Grea$eMonkey's Avatar
    May 2007
    6,302 Posts
    A part of me wants to keep capitalizing it just to piss off pedants

    Another part of me wants to keep capitalizing it because this forum is called "LUA Scripting", so I see it capitalized every day and I'm used to it.

    And about 2% of me actually cares about spelling it properly
    The ironic part is that Lua is a case-sensitive language.
    Reply With Quote Edit / Delete Reply United States Show Events Funny Funny x 21Dumb Dumb x 3Agree Agree x 1 (list)

  30. Post #30
    Zcom's Avatar
    September 2008
    113 Posts
    There is jizz on my keyboard now.
    Reply With Quote Edit / Delete Reply United States Show Events Informative Informative x 4Dumb Dumb x 2Optimistic Optimistic x 2Funny Funny x 1 (list)

  31. Post #31
    Gold Member
    Gbps's Avatar
    December 2008
    3,641 Posts
    The ironic part is that Lua is a case-sensitive language.
    Reply With Quote Edit / Delete Reply United States Show Events Funny x 17Agree x 4Dumb x 1Friendly x 1Disagree x 1 (list)

  32. Post #32
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    Bonus progress update and screenshot:
    Recoded everything almost everything so it isn't a disaster. Main advantage of this is I can make 1337 debug screens like this. But seriously folks, I'll rewrite the actual display stuff tomorrow to work with the shiny new system, and then I can get to working on people's suggestions.

  33. Post #33
    Gold Member
    Kialtia's Avatar
    April 2009
    2,189 Posts
    There is jizz on my keyboard now.
    Then i suggest you grab a tissue unless you like sticky keyboards.

    Edited:

    But seriously, this looks awesome, it would speed up coding and it prevents me from having to loop up a function.
    Reply With Quote Edit / Delete Reply Netherlands Show Events Agree Agree x 2 (list)

  34. Post #34
    BoingBoing's Avatar
    March 2009
    378 Posts

  35. Post #35
    Gold Member
    Megiddo's Avatar
    January 2005
    251 Posts
    Are you using a separate process to detect text input and draw directly on the screen?

  36. Post #36
    cpf
    cpf's Avatar
    November 2007
    343 Posts
    Yeah, not "draw directly on screen," but the extent of the "integration" is finding the caret position and putting forms there. The rest is logging keystrokes, magic, and LuaSense.MarkupPanel.

    Coding update:

    Got most of the display recoded, see results above.

  37. Post #37
    Gold Member
    aVoN's Avatar
    December 2005
    2,880 Posts
    Yeah, not "draw directly on screen," but the extent of the "integration" is finding the caret position and putting forms there. The rest is logging keystrokes, magic, and LuaSense.MarkupPanel.

    Coding update:

    Got most of the display recoded, see results above.
    I assume, the monitor means "Client", the tower "Server" and both together "Shared".
    Looks neat.

    Also one hypothesis: Shouldn't using XML slow? At least you have to parse the file everytime you start Notepad++ and read it into memory - Which can become a trouble once you allow LuaSense for functions etc of code you wrote your own (and isn't build in GMod).

    Also: How do you plan to allow "parsing our own lua-functions"? By following includes()? Or by "project files"?

  38. Post #38
    Fabulous Vailglorous Extraordinaire
    Haxxer's Avatar
    February 2007
    10,708 Posts
    I thought the title said "Lua Intelligence" and I instantly thought of the Geth
    Reply With Quote Edit / Delete Reply Sweden Show Events Funny Funny x 4Dumb Dumb x 2 (list)

  39. Post #39
    dumb ass
    RoFLWaFFLEZZ's Avatar
    April 2009
    2,582 Posts
    My keyboard is white after seeing this.
    Reply With Quote Edit / Delete Reply United States Show Events Dumb Dumb x 3Optimistic Optimistic x 1Funny Funny x 1 (list)

  40. Post #40
    yakahughes's Avatar
    April 2008
    1,318 Posts
    You can set which windows it's active in (by title).
    The title of the window changes every time you switch tabs in notepad++. Will it work despite this, or will you have to change it every time you switch files?