Search Unity

Script Inspector 3 - World's Fastest IDE for Unity

Discussion in 'Assets and Asset Store' started by Flipbookee, Jun 2, 2012.

?

What would you like to see in the next update?

Poll closed May 17, 2018.
  1. Line numbers

    140 vote(s)
    36.9%
  2. Code folding

    234 vote(s)
    61.7%
  3. More color schemes

    43 vote(s)
    11.3%
  4. Customizable color schemes

    71 vote(s)
    18.7%
  5. Search functionality

    152 vote(s)
    40.1%
  6. Lower price :D

    104 vote(s)
    27.4%
  7. No thanks, it's fine as it is :)

    11 vote(s)
    2.9%
Multiple votes are allowed.
  1. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Also would it be possible to add a different colored highlighting for "todo, fixme, bug" etc. comments and a task list showing all those like in Visual Studio? They are super useful as I leave a lot of notes for future work for myself and it would suck to do a "find all" with the keyword "todo" instead of seeing them all in a different window.
     
    Flipbookee likes this.
  2. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Really sorry for spamming the topic but a ton of feature request come to my mind, after this I'll shut up for a while or compile all my requests in an email I promise :)

    How about adding auto generating the switch cases when an enum is evaluated?
    In addition to property generation from private fields with a getter or both getter and setter.
     
    Flipbookee likes this.
  3. Fronne

    Fronne

    Joined:
    Sep 25, 2014
    Posts:
    112
    Thank you so much for this option Flip!!!

    Just installed Si3.02 and it works perfect, like aspected. The only reason I have to use MonoDevelop every now and then is the "Find (Replace) in Files..." feature. I noticed you also included the Open (Any) File in Si3 with the standard installation and want to THANK YOU again for listening to your users. SUPPORT from your side is AWESOME...

    Cheers,
    Franco Palmieri - Fronne
     
    Flipbookee likes this.
  4. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    had another thought, can you have auto complete for built in methods for example
    //
    void OnEnable(){
    }
    //
    void OnDrawGizmos(){
    }
    //
    void OnTriggerEnter(Collider other) {
    }
    //
    etc
    //
    always end up having to look em up
     
    Flipbookee likes this.
  5. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hehe, guess what? That's already there as well :D and it's even better than what you get in MD - it goes straight to the help page instead of doing a search as that's done for MD. You can even choose between local and online docs :cool:
     
    Fronne and SarperS like this.
  6. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Yep, that was the plan since the beginning! Still not implemented, maybe with the next update, but feel free to play with Si3's code snippets - maybe you can use these as a quick alternative?
     
    Fronne and punk like this.
  7. punk

    punk

    Joined:
    Jun 28, 2013
    Posts:
    408
    will do :)
     
    Fronne and Flipbookee like this.
  8. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Yes, once I finish Find in Files this will be just a very trivial addition :)
     
    Fronne and SarperS like this.
  9. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @Fronne, your idea to add open file shortcuts was awesome, indeed! I use that all the time now, no more digging through folders in Project view :D
     
    Fronne likes this.
  10. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    He he, no worries ;) I prefer having suggestions shared here so others can participate in building them up.

    Do you know of any IDE doing that in a nice way? I'll need something to use as a reference...
     
    Fronne likes this.
  11. Fronne

    Fronne

    Joined:
    Sep 25, 2014
    Posts:
    112
    I noticed something was different but the (warp)speed blinded me... :p
    It's so fast, I didn't believe it at first sight, it works at least 10, 20 times faster than MonoDevelop...
    About a millisecond after pressing F1 you are at the right spot, unbelievable...
    GREAT JOB!!!

    Cheers,
    Franco Palmieri - Fronne
     
    Flipbookee likes this.
  12. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Visual Studio does generating the switch cases, as well as many other IDEs, even monodevelop I guess but I'm not sure. Resharper with VS does it the best. Just declare an enumeration, create a variable or a function parameter of that enum type, put it in a switch and press "Alt + Enter" (it was the default kb shortcut afaik) when caret's in the switch scope, the option "Generate switch labels" will be there.



    As for property generation from variables, I don't know if VS does it by default, I've been using it with R# for a very long time. The way it works is as below;

    Code (csharp):
    1. private GameObject testGo;
    2.  
    3. // You start by typing TestGo, the same name with the variable but starting with caps and Resharper automatically suggest generating a property with both a getter or a setter and getter, and it converts it to below based on your selection.
    4. internal GameObject TestGo { get{ return testGo; } ;
     
    Last edited: Aug 13, 2015
    Flipbookee likes this.
  13. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    I did a blog post last week about this! Here http://www.sarpersoher.com/unity-script-template-keyword-replacer/
     
    Flipbookee likes this.
  14. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Those gifs are convincing enough :) Downloading ReSharper right now!
     
  15. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Flipbookee likes this.
  16. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    Is Resolve Namespace on the to-do list? Not a biggie but very convenient. Especially if it comes with two proper shortcuts and no forced menu interaction. :)
     
    Flipbookee likes this.
  17. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @UnLogick, do you mean auto-adding using directives for types? Yes, that's easy. What do you mean by two proper shortcuts?
     
  18. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    @Flipbookee, there are two ways to resolve it...

    If I write "catch(Exception)" it can be resolved by adding a using line at the beginning of the file.
    using System;
    Or it can be resolved as
    catch(System.Exception)

    Having separate short cuts would be super nice, (I use this all the time)

    Also found a pretty annoying issue. Often the intellisense will not pick the option that you have written verbatim, instead suggesting something obscure. I've seen this happen in multiple scenarios, some very plain and straight forward (but where some files failed to parse correctly due to being wip). Please ensure that the intellisense will always pick the verbatim match unless you actively use the cursor up and down.

    For a simple repro try adding "using System.IO;" and then write Files and delete the final s... observe how it fails to match File instead it suggests FileShare, basically it should always pick the verbatim match if possible whenever you change the typed word in any way.

    Finally it is super annoying that the Esc button opens the intellisense... When stuff goes wrong a couple of Esc presses should leave you back in plain editor with nothing going on... (closing search, closing intellisense, etc.)
     
    Flipbookee likes this.
  19. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    @Flipbookee, also make sure intellisense respects your case when selecting which entry is the closest match.
    When there is a local variable called texture it's annoying that it suggests Texture2D when I've written text.

    As you can tell I'm hacking away right now, so far it's turned out to be rock solid. Keep it up. :)
     
    Flipbookee likes this.
  20. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @UnLogick Thanks for the feedback! All of that makes a lot of sense and I'll check the prioritization algorithm, it annoys me as well. Auto-complete on Escape will be optional now, I also hit that repeatedly :p
     
    UnLogick likes this.
  21. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Thanks man! I checked some of them, I can borrow so many great ideas from there! :)

    Then I spent a little bit of time with ReSharper in VS, but that wasn't that exciting. I don't know on what machine you are running that, but mine seems to be to slow for such a monster. I remember, a couple of years ago I had the very same experience, I took the trial version and even though I liked it I had to remove it even before the end of the trial period - everything was just too slow.

    I don't know, is that just me or is it because I'm used to see everything happening instantly as in Si3? ;)
     
  22. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    I like the way MD works on this. It marks the error in the code, and the contextual menu offers "Resolve with using System" and "Resolve with System.Exception".

    This is a life saver, sometimes has happened to me of using a member of a namespace whose name I cant remember! (I know, you cant make it idiot proof, but meh, it would help) :)
     
    Flipbookee likes this.
  23. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @UnLogick & @Novack, I was actually thinking that's so last-gen and I would rather like to try something new: no shortcuts, no error marks, no context menus - just type and let Si3 take care of everything. :) System namespace would never get imported with a using statement if UnityEngine is already there, because that would introduce a conflict between System.Object and UnityEditor.Object, while if you type in the generic List class for example, a "using System.Collections.Generic" will be added automatically. Why would I have to tell the editor what to do, it should "know" what I want to do and it should do that without trying to distract me with stupid questions. There are only two possible answers and the correct answer is pretty straight forward. If I type a Linq query expression there's even only one correct answer... What do you say about that?
     
  24. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    I think it could work, and sounds definitively as something worth trying, but would be nice to see a fading message "System.Collections.Generic added..." (maybe at the same spot where the compiling messages happen).

    I feel better if I know of changes in the code done by the editor :)
     
    Flipbookee likes this.
  25. UnLogick

    UnLogick

    Joined:
    Jun 11, 2011
    Posts:
    1,745
    @Flipbookee, interesting suggestion, try it... but only as long as there is only one option and no possible conflicts...
     
    Flipbookee likes this.
  26. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    "A lot of times, people don't know what they want until you show it to them." -- Steve Jobs

    I guess I'll have to take that advice :p
     
    Fronne and Novack like this.
  27. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hmm, seems like I was a little bit too optimistic :p there are too many types to let all of them go in the completion list. That will just pollute the list with too many irrelevant choices and make it harder to find what is actually relevant... They only way this may work is if I limit the choises only to some more common namespaces, such as System.Collections.Generic, System.Linq, maybe System as well, and all of the Unity's own namespaces. If this is configurable then you'd have to customize it to make it easier for you to work with your own code and with whatever plugins you may have... I think this may work much nicer :)
     
    Novack likes this.
  28. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    @Sarper Soher, damn you, I couldn't sleep before adding this nifty feature! Si3 just learned how to do exactly the same thing :D

    And the cool thing about this is not the feature itself, but the way how it's implemented! It's only one class with about 20 lines of code that implements the ISnippetProvider interface (a newly introduced way to extend Si3 code snippets), receives all kind of useful info about the context in which it will be invoked, scans the fields in the enclosing type and "yield return"s completions! It's super simple and I believe many of you will be able to create your own intelligent snippets with this :cool:

    This opens a whole new range of opportunities: auto-implementing interfaces, override methods, case blocks for enum switches, Unity's magic methods, and other things like that! :D
     
    Novack likes this.
  29. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    So let's talk about my % cut from the sales for this idea then :) jk, great to hear that, can't wait for the new version!
     
    Fronne and Flipbookee like this.
  30. inventor2010

    inventor2010

    Joined:
    Nov 3, 2010
    Posts:
    124
    Unless... They *do* know what they want, and you show them something else!!!

    I'm fully with the idea of an IDE being "helpful" (that's kinda it's main reason for being), and I do like your idea! But, I also like the idea of it, at the very least, asking, or prompting me for the change!

    I think that goes for pretty much anything that a program would do automatically, I'd rather have the option!!! Helpful as it may be, even some things in SI I find mildly annoying. Perhaps a better algorithm would be helpful? Like when I'm placing a block of code in a loop, or if statement. At that moment, I do not want my braces completed at the end of the line I'm typing! Certainly, you could *try* to figure out what it is that I'm doing, place it in the "correct" spot, auto indent, and prompt me... But honestly, I'd rather just have the option to turn of the darn brace completion! :p

    Auto generated using & import statements may be an exception, and it would be nice! - Just general advice... But what happens to the coder when the IDE is constantly changing things around them without knowing? Particularly, those who are still learning? o_O

    Maybe once you have all of the major tools currently in a modern IDE, you can invent a machine learning algorithm to interpret my method of coding and *actually* "complete my sentences" :p... Until then, Find&Replace, Debugging, Code folding... MUCH MORE USEFUL! :D
     
    Fronne and Flipbookee like this.
  31. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hehe yes, you're right! :p This would be optional in any case and turned off by default ;)

    Well, the core of the idea was to not let the IDE interrupt you in the middle of doing something important... The "asking" would anyway happen if the feature is turned off... Let me try to explain this in a simpler way: You know how some IDE's have option to automatically remove unused using statements on save, right? So this is something similar - it will remove all unused using statements automatically, but also it will add the required using statements automatically to make the code compile. And it will not happen only on save but whenever your code changes require that... Of course, if there's any ambiguity you'll be asked to resolve that, but if not then the result should be, I believe, that you'll be able to focus on writing your code and forget about the existence of using statements! That was the exciting part of the idea :)

    Anyway, I'm still far from being able to do that right now, and yes, I should better focus on finishing the major tools first before trying any of those advanced features :p... I'm still working on Find in Files, making the UI pretty is the only thing left now.
     
    inventor2010, Novack and Fronne like this.
  32. tarzmedia

    tarzmedia

    Joined:
    Apr 19, 2014
    Posts:
    14
    it seems very good editor integrated right into unity3d.
    how about breakpoints for debugging purposes ? (andalso watching variable value etc.)
     
    Fronne and Flipbookee like this.
  33. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Thanks @tarzmedia! :D

    Debugging is still the ultimate goal! However it's a very big challenge too - on hitting a breakpoint the execution of the scripts and Unity itself has to stop, so there's a catch-22 situation here, and that's why applications cannot debug themselves... However I still believe I might be able to do exactly that - make Unity able to debug itself! A quick test I did some time ago showed this won't be easy, but I never give up easily ;) so the plan is to do some more research in that direction once I complete the missing basic tools: Find (Replace) in Files, Find (Rename) all References, and complete the missing bits of the semantic analysis... Then the real fun will begin :cool:
     
    Novack and Fronne like this.
  34. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    Cheers to that matey!
     
    Flipbookee likes this.
  35. angelodelvecchio

    angelodelvecchio

    Joined:
    Nov 15, 2012
    Posts:
    170
    brother your work looks marvelous ! but do you have any timeline for unityscript autocompletions ?

    Many thanks
     
    Flipbookee likes this.
  36. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Thanks a lot my friend! :D

    I have no estimate for UnityScript yet. Once I start working on that I'll know more details... All the Si3 tech was designed to allow easy support for different languages, so let's see how will that go...
     
  37. angelodelvecchio

    angelodelvecchio

    Joined:
    Nov 15, 2012
    Posts:
    170
    Ok ! i asked once that already, sorry for the persistence , but i cant live without your asset !, this is a must have ! not more boring ALT+TABS to make things work ! and now using SSD harddisk for the project, things is really fast ! Many thnanks !
     
    Flipbookee likes this.
  38. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    No problem @angelodelvecchio, it's always great to hear people like Si3 so much! :D
     
  39. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey people, do you remember this?

    MixedLineEndings.png

    If you've been using Script Inspector for long enough I bet you forgot already about this warning! :D

    I just imported some old scripts that have never been touched by Script Inspector obviously and I got this in the latest version of Unity... Just wanted to confirm this warning still exists ;)

    Stay tuned - new version of Si3 is just about to be uploaded to the Asset Store! :cool:
     
    Novack likes this.
  40. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    844
    Haha! Such old technology... :cool:

    I have to still use it on some cases though :(
     
    Flipbookee likes this.
  41. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    o_O Breaking News!!! :eek:

    Script Inspector 3, version 3.0.3
    is now available on Asset Store! :D
    Main highlights of the new version:
    • Find in Files! :cool:
    • A cool new system - Smart Code Snippets :D
    • A lot of improvements, tweaks, and some bug fixes :p
    Can't wait to hear your feedback (as usual)! :cool:

    Enjoy!!! ;)
     
    SpectralRook and SarperS like this.
  42. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey folks! A tiny bug for 'Go To Definition' slipped in the last update and it was quickly reported by @Novack... I've fixed it and reuploaded it to Asset Store, so if you have already taken version 3.0.3, please update again - version 3.0.3a is available now! Sorry about that ;), even after all the tests I did not notice that. I guess I was too excited about all the new things in Si3 ;)
     
  43. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hehe, I've found another small bug in 'Go To Definition' which is fixed now ;)... Please update your Si3 to version 3.0.3c which is now available on Asset Store :)

    Enjoy!!! :cool:
     
    SarperS likes this.
  44. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Wow! That's a seriously impressive review!!!

    Michael's-Review.png

    Thanks Michael! You made my day :D
     
    gg_michael likes this.
  45. gg_michael

    gg_michael

    Joined:
    Sep 24, 2012
    Posts:
    73
    Haha np man, just spittin the truth.

    Question: any plans for code collapsing in the works?
     
    Flipbookee likes this.
  46. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Find all references is on top of my list currently, along with support for partial classes... Code collapsing would also be cool, all check that too between other tasks ;)
     
    gg_michael likes this.
  47. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Hey @Flipbookee , amazing work with the new update. I have a small request, can you add an option to Si3 so it respects CamelCase when using ctrl + cursor keys to navigate? Below is a gif from Resharper in VS doing that.

     
    Novack and Flipbookee like this.
  48. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Novack and SarperS like this.
  49. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hey,

    Cool features but I don't know what Smart Code Snippets are, any explanation?
    Also how do I do find in files?

    Thanks,
    jrDev
     
    Flipbookee likes this.
  50. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,796
    Hey @jrDev, sorry man, I thought Find in Files will be easy to discover - it's Shift+Ctrl+F on Windows and Shift-Cmd-F on OS X ;). Note that this shortcut is also available outside of Si3 - you can use it even if Si3 is not focused or even when there is no Si3 view open, because it's assigned to a menu item: Edit->Script Inspector 3->Find Text in Files...

    This is how that looks like:
    Find-in-Files.png

    And this is how Find Results look like:
    Find-Results.png

    There is currently only one Smart Code Snippet included - the one that generates properties for a field. To use it just start typing (inside the body of a class or struct definition) the name of any already declared field and you'll get two snippet completions, one to insert a property with getter and setter for that field and another one for a property with a getter only. It's pretty much the same as in ReSharper's example posted above by @Sarper Soher :cool: but I can't resist to not show how that looks like in Si3:
    GenerateProperty.gif

    I also posted in the Si3 WIP thread how to create your own smart snippets with an example script that can generate Unity's magic methods, which I'll extend with all the known methods for all special Unity classes over the weekend. That would a simple case of using this feature. Another simple case is generating all case statement inside a switch for an enum type, or some more advanced use cases would be to generate override methods or to generate interface implementation :cool:

    Less typing, more fun :D

    EDIT: Oh, and please let me know if you guys can think of some cases where it makes sense to use this feature for something very specific to Unity code!
     
    crafTDev, UnLogick and Novack like this.