Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[SALE 49% off] 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. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    I suggest you to reply to all the old reviews of Si2 (especially the two that are in the top 3) and say that the new version implemented all the features that they requested.
     
    Flipbookee likes this.
  2. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Good point! I should definitely do that :)
     
  3. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    823
    @Flipbookee Just a quick question, is Si3 able to open external cginc files? I tried but it didn't open them.
     
    Flipbookee likes this.
  4. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    If you mean external like outside of a Unity project then no, it can only open assets that are part of the current project.

    Is this something like you want to see the standard .cginc files for reference? I should be able to allow opening files which are not part of a project, but I'm not sure how complex would that be. Because Si3 assumes all files it works with are assets of the current project and therefore it relies on some Unity's built-in functionality about those assets.
     
  5. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    841
    Dear Santa:
    For this Christmas, I wish you convince @Flipbookee about placing the semicolon always at the end of the line (except when inside quotemarks), so Im out of my misery for good.

    I will be a good coder until then!
    Thanks,

    Novack

    If you feel ultra generous, also convince him to release debugging soon.
     
    mcmorry and Flipbookee like this.
  6. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Lol @Novack! That's awesome :D Too bad I can like your post only once :p

    Sorry about the semicolon thingy, I always forget about that :oops:
     
    Novack likes this.
  7. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    823
    Yep, just wanted to quickly check the UnityCG.cginc while editing a shader. Tried to open it with "Ctrl + Shift + O" but as you've said, it doesn't work that way. Not a biggie though, it's not something I do all the time. One thing you can do is, let the user open them but with no editing, kinda like a read-only file.
     
    Flipbookee likes this.
  8. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Would you please try this and see if that works? I'd include it with the next update if it works fine...
    Code (csharp):
    1.             if (lastTypedText == ";")
    2.             {
    3.                 lastTypedText = null;
    4.                 var tokenLeft = GetTokenAtPosition(caretPosition.line, caretPosition.characterIndex);
    5.                 if (tokenLeft != null && tokenLeft.tokenKind == SyntaxToken.Kind.Punctuator)
    6.                 {
    7.                     var tokens = textBuffer.formatedLines[tokenLeft.Line].tokens;
    8.                     if (tokenLeft.TokenIndex < tokens.Count - 1)
    9.                     {
    10.                         var lastToken = tokens.Last(t => t.tokenKind > SyntaxToken.Kind.Whitespace);
    11.                         if (lastToken.tokenKind > SyntaxToken.Kind.VerbatimStringBegin && lastToken.text != ";")
    12.                         {
    13.                             var firstToken = textBuffer.FirstNonTriviaToken(caretPosition.line);
    14.                             if (firstToken.tokenKind != SyntaxToken.Kind.Keyword ||
    15.                                 firstToken.text != "for" && firstToken.text != "foreach")
    16.                             {
    17.                                 textBuffer.EndEdit();
    18.                                 textBuffer.BeginEdit("Smart Semicolon Placement");
    19.                                 ProcessEditorKeyboard(Event.KeyboardEvent("backspace"), true);
    20.                                 ProcessEditorKeyboard(Event.KeyboardEvent("end"), true);
    21.                                 ProcessEditorKeyboard(Event.KeyboardEvent(";"), false);
    22.                             }
    23.                         }
    24.                     }
    25.                 }
    26.             }
    Just paste that right after this block:
    Paste-it-after-this.png

    Merry Christmas! ;)
     
  9. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    841
    OH Lordy. Works Like a charm. Thank you very much mate! :eek::cool:

    And thank you Santa Coding!
     
    Flipbookee and mcmorry like this.
  10. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Yeah, I was also thinking read-only may help, but no, editing is not an issue. Reloading external changes and uniquely identifying the target file (by a GUID) are the things which Si3 relies on Unity to do. How about opening external files as a non-saved and non-created asset instead? As if you would create a new document and paste in it the whole content of that external file? Then you can still edit it and if you want save it as a new asset in the project by selecting a folder and giving it a name - I think this would be twice more useful! This also goes in line with my plans to allow editing in-memory files in Si3 (files that haven't been saved as a file anywhere yet). This is something that I need to do anyway in order to have an immediate window for example, or to let other plugins that generate code to let you preview and maybe edit the code they generated (think uFrame, ShaderForge, etc.)
     
    SarperS likes this.
  11. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    823
    Sounds like a great plan. It could be used to pull some scripts from other projects and edit/save them to the current project also, instead of fiddling with the Explorer/Finder or using Unitypackage 's.
     
    Flipbookee likes this.
  12. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Yep, that's true as well :)
     
  13. akderebur

    akderebur

    Joined:
    Apr 21, 2013
    Posts:
    18
    Hi,

    first of all thank you for this great plugin. It works well and it really makes coding easier.

    The only thing I can recommend you is to add support for unsafe code. Currently the keywords like "unsafe" and "fixed" are not supported. Also SI3 does not recognize the pointer type. The code compiles fine but most of the words are underlined in red.



    I know that unsafe code may not be used by many developers but it is sometimes necessary when performance is an issue. So I thought that it might be a useful feature.
     
    Flipbookee likes this.
  14. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Oh wait! Can we use unsafe code, fixed arrays and pointer types? When did that change? How did I miss that? :confused:
     
  15. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Oh course it will be useful. In fact Si3's grammar must support all the language features, and I thought it does, but I didn't know unsafe code is allowed in Unity. Last time I checked it wasn't and I have no idea when and how did that change... I'll take care of this, thanks for the info @akderebur!
     
  16. akderebur

    akderebur

    Joined:
    Apr 21, 2013
    Posts:
    18
    You are right. It has never been clear if Unity allows you to use unsafe code but the documentation actually hint that you can :D

    In order to use unsafe code you have to include that option to preprocessor directives. You can read more about how to to that in this page : Platform Dependent Compilation under "Global Custom Defines".

    So if you need to use unsafe code in your project, you create a file called "smcs.rsp" under the Assets folder. Open it with a text editor and type "-unsafe". After you save it (and maybe restart the Unity Editor) your unsafe code will compile fine.
     
    Novack and Flipbookee like this.
  17. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Hmm, that code above was okay in most cases but it was making it impossible to write something like:
    Code (csharp):
    1. private int SomeIntProperty { get; set; }
    so I've changed it to this:
    Code (csharp):
    1.             if (lastTypedText == ";")
    2.             {
    3.                 lastTypedText = null;
    4.                 var tokenLeft = GetTokenAtPosition(caretPosition.line, caretPosition.characterIndex);
    5.                 if (tokenLeft != null && tokenLeft.tokenKind == SyntaxToken.Kind.Punctuator)
    6.                 {
    7.                     var tokens = textBuffer.formatedLines[tokenLeft.Line].tokens;
    8.                     var tokenIndex = tokenLeft.TokenIndex;
    9.                     if (tokenIndex < tokens.Count - 1)
    10.                     {
    11.                         if (tokens.FindIndex(
    12.                             t => t.TokenIndex != tokenIndex &&
    13.                             t.tokenKind > SyntaxToken.Kind.LastWSToken &&
    14.                             (t.text == "}" || t.text == "{" || t.text == ";" || t.text == "for")) < 0)
    15.                         {
    16.                             textBuffer.EndEdit();
    17.                             textBuffer.BeginEdit("Smart Semicolon Placement");
    18.                             ProcessEditorKeyboard(Event.KeyboardEvent("backspace"), true);
    19.                             ProcessEditorKeyboard(Event.KeyboardEvent("end"), true);
    20.                             ProcessEditorKeyboard(Event.KeyboardEvent(";"), false);
    21.                         }
    22.                     }
    23.                 }
    24.             }
    ...which should work much nicer now :cool:

    @Novack (or anyone else interested), please try this out and let me know if do so or if you find any issue!

    Thanks :)
     
    Novack likes this.
  18. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    841
    Awesome. Thanks man. I had not tested that case... changed my coding habits regarding properties when started working with Unity, and I really miss getters and setters :(

    Is working nicely here, but I wont be coding intensely for a few days, so don't count my small test as rigorous.
     
    Flipbookee likes this.
  19. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    NP @Novack, I'm testing it but I wanted to know if anyone else does that too - would be great to know in advance if there's any issue
     
  20. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    I just applied this patch. I'll test it a bit.

    Also a feature that you could add to the list:
    When you will implement a refactoring of a class name, the rename should allow to rename not only the file name (as Monodevelop does) but also the .meta file.
     
    Flipbookee likes this.
  21. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    A small useful improvement:
    In the auto completion list you could also specify the Type of a property and, in case, the class in the hierarchy:
    Compare MonoDevelop with Si3:
    Screenshot 2015-10-04 19.19.31.jpg
    Screenshot 2015-10-04 19.20.00.jpg
    Also, as you can see, "gadget.transform" is not recognized. "gadget" is of type "Object" and not "GadgetEntity" as it should.

    Finally, the font in the suggestion list is very small and the background color is too similar to the main bg color. It's not very readable for me.
     
    Flipbookee likes this.
  22. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    exception on CMD+E (that I hit to delete a line as I do on MonoDevelop but I don't know if it should be the same on Si3):

    NullReferenceException: Object reference not set to an instance of an object
    ScriptInspector.FGTextEditor.ExecuteStaticMethod () (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTextEditor.cs:6954)
    ScriptInspector.FGTextEditor.ProcessEditorKeyboard (UnityEngine.Event current, Boolean acceptingAutoComplete) (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTextEditor.cs:7227)
    ScriptInspector.FGTextEditor.DoGUI (Boolean enableGUI) (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTextEditor.cs:3443)
    ScriptInspector.FGTextEditor.DoGUIWithAutocomplete (Boolean enableGUI) (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTextEditor.cs:2748)
    ScriptInspector.FGTextEditor.OnWindowGUI (UnityEditor.EditorWindow window, UnityEngine.RectOffset margins) (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGTextEditor.cs:2606)
    ScriptInspector.FGCodeWindow.OnGUI () (at Assets/Plugins/Editor/ScriptInspector3/Scripts/FGCodeWindow.cs:1069)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
    Flipbookee likes this.
  23. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    841
    Same happened to me:
    Preferences - View - uncheck "Use neutral colors in popups".
     
  24. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    I tried but nothing changes. Are you also on Mac?
     
  25. Novack

    Novack

    Joined:
    Oct 28, 2009
    Posts:
    841
  26. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Nice! Fixed now :)

    Cmd-E in Si3 executes the static parameterless method under the cursor. @UnLogick did the initial implementation and I included it with my modifications, but seems like I forgot to add a null check for symbol local variable.
     
  27. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Great, thanks man! :)

    Ah, cool pro tip! Then this is going to make Unity keep references to that script from scene objects and prefabs, right? :cool:
     
  28. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    I see... Can you please show me how mg is declared? The foreach should take the generic IEnumerable interface of the type of mg variable, and then item.Value takes the type of the second generic type argument, which normally works fine but seems like you've found a case where it doesn't.

    I'll tweak the background and font size a little bit, thanks for the tip! ;)
     
  29. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    Yes exactly. Now I'm forced to refactor in MonoDevelop, open Finder to the folder where I renamed the file and rename manually the meta. All of this before to click on Unity or it will delete the old meta and create a new one (I also disabled the autorefresh to avoid this).
     
  30. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    About the item.Value, it is correctly recognized as it should. I'm just saying that the list for the autocompletion shows only the names but not the their types. It would help to know what a variable or a property is. Especially when editing an old code and you don't have clear in mind all the things.
    Screenshot-2015-10-04-19.19.31bis.jpg
    Anyway mg is a Dictionary<int, Gadgets> where Gadgets is an enum.
    It's defined in this way:
    var mg = GameData.Data.ActiveCarSettings.MountedGadgets;
     
    Flipbookee likes this.
  31. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Ah, yes sorry! I didn't get your post, I read it too fast :p

    Yes, showing the type would be nice. @Novack has reminded me about that a couple of times ;) but I haven't found time to add that yet. Adding new popup windows in Unity so far was always a risky change - if anything is not done as Unity likes it then the whole Editor starts crashing with no log, which makes it very difficult to fix things. Also popup windows in Unity work differently on Windows and OS X, so finding the right intersection to make that work on both OS's is always a challenge...

    I tried a similar code in Si3 as with unrecognized gadget just now and I see it doesn't resolve the methods Resources.Load<T> and Object.Instantiate<T> correctly to their generic overloads... I'll debug this right now!
     
    Novack and mcmorry like this.
  32. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    Another small catch.
    The autocompletion proposes the correct enum, but with the full namespace. It's not needed because the enum is defined as private inside the same class. Infact if I manually type it "Actions." Si3 recognize it correctly and suggests the values.
    Screenshot 2015-10-04 21.08.46.jpg
     
    Flipbookee likes this.
  33. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    Instead of opening an additional popup you could add the information directly inside the list, maybe also with the comments:
    Screenshot-2015-10-04-19.20.00bis.jpg
     
    Flipbookee likes this.
  34. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Nice find! :) I'll fix that...

    Yeah, that's also an option... I'll try with a popup first and see how that goes.
     
  35. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,818
    Hey Flipbookee,

    The latest updates are awesome! I am still looking forward to find and replace. I am desperate for this feature :p

    Also another little problem I have is when I am writing a lambda expression, when I start to declare the var for e.g. i => i, it automatically gets replaced with a declared variable or method so I have to delete the extra characters to declare the variable properly. Is there a fix?

    Thanks,
    jrDev
     
    Flipbookee likes this.
  36. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Hey @jrDev, thanks for the feedback! :)

    I was planning to do something about writing lambda parameters. It's an easy change, so I'll try to get that in for 3.0.8... Replace will not come with 3.0.8 but maybe in the next release... 3.0.8 is mostly about fixes to the existing features.
     
    crafTDev and SarperS like this.
  37. wkwan

    wkwan

    Joined:
    Sep 14, 2014
    Posts:
    27
    Hey man, great work with the updates as always. Just wondering if you plan on implementing these shortcuts I mentioned a while back? Useful for me since I'm used to using those shortcuts in Sublime.
     
    Flipbookee likes this.
  38. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    @wkwan: Are you asking about cut/copy/paste on the current line when there's nothing selected? Yes, that's already in Si3 but you'll have to enable that from Si3 preferences - it's turned off by default because I hate it when I miss the keys and I press copy instead of paste, that would then copy the line where I wanted to paste and overwrite my copy buffer, so then I have to go back again, select the thing, copy, go forward where I wanted to paste and hope I won't press the wrong key this time... :p

    So the option is in the Script Inspector page of the Preferences window, Editor tab, Editor Keyboard category, then "Copy/Cut full line if no selection" needs to be turned on. :)
     
  39. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    I think that there should be an option in the Si3 settings to allow just that. Try to look there.
     
    Flipbookee likes this.
  40. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Hehe, @mcmorry we replied at exactly the same time :D
     
    mcmorry likes this.
  41. wkwan

    wkwan

    Joined:
    Sep 14, 2014
    Posts:
    27
    Oh I see thanks!
     
    Flipbookee likes this.
  42. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,818
    Hey Flipbookee,

    I am looking forward to both updates! I think every time I need to replace over 200 words I check this thread to see updates :p

    EDIT: BTW, don't remember if I reported script inspector not scrolling to the proper line when you click on the error log. Usually a few lines below.

    Thanks,
    jrDev
     
    Last edited: Oct 8, 2015
    Flipbookee likes this.
  43. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    @jrDev If it is about Replace All, I can add that easily. The other case where you'd go one by one occurrence and replace or skip is a bit more complex. ;)

    I know about the scroll to line issue, it happens because Unity doesn't always report the correct size of the tab. I've been trying to find a solution for that for some time already but seems like I still haven't found a reliable way to do that... Just for my records, can you say is your word-wrap option turned on or off?
     
  44. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,818
    Hey Flipbookee,

    ReplaceAll would be great at the moment, but why would it be harder to do it one by one occurrence, you already have the ability to click through each matching word? I'm not a pro coder, so maybe there is something more deep in your code that makes this harder, but wouldn't it be easier to change the word when it's the one selected?

    Also, I don't use word wrap.

    Thanks,
    jrDev
     
  45. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Oh, no, the difference is tiny :p - there's no additional UI work required for Replace All and the rest is already there ;)

    Thanks for the info!
     
  46. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    I realized you used as lot of UNITY_5_0, I found the define it is not valid U5.2.1, UNITY_5 works fine.
     
    Flipbookee likes this.
  47. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Yep, that's intentional ;) UNITY_5_0 is only defined in Unity 5.0.x... Also, there's no single feature I use that is or will be available in all Unity 5.x.x versions which makes the UNITY_5 define pretty much useless. I use inverse logic in #if statements to keep forward compatibility, for example if I want to enable a code block in Unity 5.1.x and above I do:
    Code (csharp):
    1. #if !UNITY_4_0 && !UNITY_4_1 && !UNITY_4_2 && !UNITY_4_3 && !UNITY_4_5 && !UNITY_4_6 && !UNITY_5_0
     
    Novack and mcmorry like this.
  48. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    Oh, I just noticed that override methods code generator doesn't work at all in 3.0.7 :p and, strangely enough, no one reported that (except @thienhaflash who reported the error log only)... It's fixed now in 3.0.8 and it will be released tonight. It's also super-cool, hehe, you'll like it so much! :cool:
     
    Novack likes this.
  49. Flipbookee

    Flipbookee

    Joined:
    Jun 2, 2012
    Posts:
    2,751
    So this is the change log for Si3 version 3.0.8:

    - Updated editor scripts rules for Unity 5.2.1p4 and newer versions
    - Unity 5+: Allowed editing assets of DefaultAsset type (currently for files of type: md, xaml, text, bat, cmd, sh, command, ini, rsp, plist, log, and lua)
    - Smart semicolon placement (optional and disabled by default) - thanks @Novack
    - Added alternative shortcut for Redo on Windows - Ctrl+Y - thanks @Victor_Kallai
    - A smarter set of characters that trigger accepting suggested completions - thanks @Adam Buckner
    - Color themes now support different colors for punctuators and operators - thanks @Korindian
    - Tweaked Monokai tooltip colors - thanks @mcmorry
    - Slightly increased font size in auto-complete lists - thanks @mcmorry
    - Implemented the special handling of Nullable LHS operand for the null-coalescing operator
    - Fixed code generator for override methods - thanks @thienhaflash
    - Fixed an error in Execute Static Method command (Ctrl/Cmd+E) - thanks @mcmorry
    - Fixed resolving generic methods overloaded with a non-generic one - thanks @mcmorry
    - Fixed code generator for relative names of members of a nested types and nested namespaces - thanks @mcmorry
    - Fixed duplicated suggestions of enums and constructors after new
    - Fixed resolving of qualified identifiers in explicit interface implementation methods
    - Fixed implicit conversions of Nullable types to their underlying type - thanks @Victor_Kallai
    - Fixed resolving conversions for constructed generic types
    - Fixed Open at Line shortcut in Unity 5 on OS X - thanks @mcmorry
    - Fixed an error in ConstructedTypeDefinition.BaseType() - thanks @thienhaflash
    - Fixed the error when trying to open a built-in shader in Si3
    - Fixed Find Results window after searching for text that starts or ends with whitespace characters

    The new version will be available in a few minutes... I'll let you know ;)

    Lots of fixes and improvements, hehe! :cool: Thanks to all of you involved in these improvements! :D (and sorry if missed anyone's credit)
     
    Last edited: Oct 17, 2015
    SarperS, UnLogick and Novack like this.
  50. Adam-Buckner

    Adam-Buckner

    Joined:
    Jun 27, 2007
    Posts:
    5,664
    Ace!
     
    Novack and Flipbookee like this.