The Infinity Blade Forums Have Moved

We've launched brand new Infinity Blade forums with improved features and revamped layout. We've also included a complete archive of the previous posts. Come check out the new Infinity Blade forums.
See more
See less

UnrealScript IDE for Sublime Text 2 / 3 | Update: Content Assist

This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

    Im sure those functions are declared somewhere in the C++ for UDK but within the UScript they arnt found so this would mean they wont show up in any precomputed object orientated auto-completion (wow what a mouthful).


      Hey, zinggi57, got any update/news on the plugin?


        Thank you so much for this


          A huge update is coming really soon, guess what it will be
          I'm almost happy with the new feature, so I will release the new version probably this weekend.


            Originally posted by zinggi57 View Post
            A huge update is coming really soon, guess what it will be
            I'm almost happy with the new feature, so I will release the new version probably this weekend.
            EPIC! Keep it up!


              Object-Oriented Auto-Completions

              Finally, the moment is here where I present to you the most awaited feature:

              Object-Oriented Auto-Completion

              along with some other features:

              Fully Object Oriented Auto-Completion
              • expressions such as WorldInfo.Game.* will now list you all available completions of the object Game (e.g. Broadcast)
              • this does also work with function with a return value, e.g:
                Trace(HitLocation, HitNormal, traceEnd).* would give you suggestions from the Actor class, because trace returns Actor
              • typecasting is also supported: Pawn(other).* would display completions from the Pawn class.

              Fully Object Oriented Go to Declaration
              • Go to Declaration now also works on all expressions where auto-completion works, e.g. using Go to Declaration here:
                WorldInfo.Game.Broadc|ast(self, "hello!") would take you to the line where Broadcast was declared

              Automatic rebuilding of the cache file
              • The cache file will now be rebuild automatically when necessary.
              • The only situation where you have to rebuild the cache file manually is if you delete a class.
                To do so go to 'Tools' -> 'UnrealScriptIDE: Rebuild Cache' or use Ctrl+Shift+P and search for it.
              • If you modify a class in another application you need to save this file at least once in Sublime to register your changes.

              Next thing on the list is to add support for Structs.
              Currently structs aren't supported. e.g. if you type Actor(other).Location.* you won't get x, y, z although you would want to.
              some other features that would be nice to have are:
              • Support for local variables
                local variables and function arguments should also appear in the completion list
              • live parsing of the current file
                if you have declared a variable such as: var Pawn MyPawn; and immediately afterwards type MyPawn.* it won't give you any suggestions.
                To get your suggestions you have to save your file first.

              If you find a bug, have a great idea or if something does not work as you think it should, please don't hesitate to leave feedback here.

              I'm also thinking about implementing an object browser. Sadly, Sublime Text 2 plugins are quite limited when it comes to doing a graphical interface.
              The only way I can think of to realize this is to use the text view and Sublime's folding feature.
              Another way would be to do it completely text based directly inside the command pallet (ctrl+shift+p). Maybe that's the proper way to go? What do You think?


                Awesome! Now there is no point in returning to other IDE's!





                  Small update:

                  Inbuild functions are now supported
                  e.g. a variable of type array now has member functions like sort or insert

                  [EDIT: I've added some more features:]

                  Support for Structs
                  now typing Actor(someActor).Location.* will give you x, y, z as a hint

                  Support for Const
                  const variables are now also recognized by my plugin. e.g CONST Pi = 3.1415926535897932;

                  To enable these features you have to rebuild your cache.
                  This can be done using 'Tools' -> 'UnrealScript IDE: Rebuild Cache' or ctrl + shift + p -> search for 'rebuild cache' -> hit enter.
                  This may take a while, but it's a one time operation.


                    Is there a way to get the highlighter to recognize the structures you've declared etc?

                    Also, huuuge thanks! The new features make this my number 1 programming editor

                    I did find using my tablet to remote to my PC I could use its keyboards auto-complete ontop of the Sublime Text.


                      No I'm sorry, the syntax highlighter of Sublime Text 2 is quite limited. It is not possible to highlight your own classes or structs or whatever you'd like to have highlighted. At least not to my knowledge. If you find another Sublime Text 2 plugin that does that, let me know, then I can inspect that.

                      Doesn't the tablet autocomplete interfere with the Sublime autocompletion? Sounds strange to me, but if you find it convenient, why not

                      And thanks for using my plugin!


                        Nah it doesnt interfere since the suggestions for Sublime Text's auto-complete come up at the side the tablets are on the keyboard Thats a shame to hear, I looked at the highlighter file myself and there does seem to be alot in there. I wouldnt call it limited as it does highlight embedded text, which could include macros and c++; I havent honestly looked up any other sublime text plugins but I just might to see if theres anything. Im enjoying using it more than jEdit but I do have the ability to manage projects in jEdit which isnt a huge deal if I just use Sublime Text for my current working version. I usually just add custom structs and enums to the highlighter manually


                          Ok what I actually meant is that it's not possible to let a plugin communicate with the language file and therefore adding your structs etc automatically. If it was possible it wouldn't be a big deal to highlight them, as my plugin already detects your structs for autocompletion and go to declaration.
                          But if you don't mind editing the language file by hand then there is of course the possibility to add your own structures in there. For the record I'm talking about the UnrealScript.tmLanguage file.
                          But I'm not sure what will happen when you edit the language file and I update the plugin, it will probably be overwritten. So If you're going to do it that way, make sure you have a copy of that file somewhere. Also, if you're going to make any useful addition that everybody could benefit from, please send me a pull request on Github.

                          Regarding projects, Sublime has projectmanagement too, so you can use Sublime for multiple projects too. You can find a good video about it here.

                          [Edit:] You can probably add your own classes on line 161. And structs on line 169


                            Just gave this a try. Afterwards, UnCodeX had to rescan the source directory claiming "class changed since last time" on the entire API. Any idea what Sublime is doing to cause this?


                              I can only guess that UnCodeX isn't really clever when it comes to check if files have changed, as the only files that will be changed using this editor is the files you modify (of course) and also a single cache file which will be stored inside your source directory. Maybe thats causing it? Does it happen every time you reopen Sublime or did it only happen once?


                                Just once, but I haven't used Sublime in a proper workflow yet. I have multiple projects so the build/run options are a bit limiting. Haven't looked at the Sublime documentation yet though.