Search Unity

MonoDevelop - Things You Want

Discussion in 'General Discussion' started by Reapazor, Oct 18, 2013.

  1. Reapazor

    Reapazor

    Joined:
    Jun 19, 2008
    Posts:
    173
    Hey everyone ... I've been a big supporter or using MonoDevelop with Unity since long before Unity choose to adopt it. I even recently discovered that some of my patches made it into the MD source (Thanks Tak!). Needless to say, I've been hearing a lot of grumblings about how people don't like MD as much as VS, etc. So I wanted to start an open forum discussion (no hate please) on what you would like to see specifically in MD.


    I'll be the first to say, I'd love to have a fully flushed out ReSharper plugin for MD (i know there is the start of one already there)


    What else? Let's be constructive ... because I've found the time in my past to add features to MD for people, and if I can have some 'focused' additions, I might just find the time again.
     
  2. Adrianis

    Adrianis

    Joined:
    Apr 20, 2013
    Posts:
    109
    Personally, I write my code in VS and debug in MD. Partly its the speed, I much prefer VS 2010's responsiveness for its intellisense. Mostly though I find that VS points out mistakes in my code around Type usage (mostly around casts) that MD doesn't - not a massive issue as Unity will report those errors when I switch back to it anyway, but loading up VS to write code isn't a massive issue either and overall I find it improves the workflow speed.

    Hope that helps
     
  3. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    I completely agree with Adrianis. Visual Studio for me just provides a much nicer interface and better intellisense. Plus, I integrate with TFS and (especially with VS 2013), the integration is much nicer.

    On the ReSharper note, I'm a little on the fence on this one. I love Resharper. I have a license and I use it constantly both professionally and personally. However, you still have to be careful. For example, it will suggest you turn just about every loop into a LINQ expression, and while this is fine for everyday development, there are performance and compatibility reasons why you may not what to do this. Same with "for" vs "foreach". I'll use a for loop whenever possible as it's more performant to use an indexer rather than an object enumerator.
     
  4. Yoska

    Yoska

    Joined:
    Nov 14, 2012
    Posts:
    188
    I do like MD mostly. But I'm not sure if it's a Boo thing but it can be a bit senile at times. Autocomplete and highlighting sometimes works, sometimes not. Which is cute and all but it can make writing code a bit pain. Also weird whitespace issues with copy pasted codes.

    Did they say how MD was going be updated in 4.3 (if the update will be included in 4.3 at all)?
     
    Last edited: Oct 18, 2013
  5. MarigoldFleur

    MarigoldFleur

    Joined:
    May 12, 2012
    Posts:
    1,353
    Monodevelop is absolutely reprehensible trash in its current version in Unity but 4.0, which we're getting in 4.3 actually works and isn't a slow, useless piece of S***.
     
  6. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,568
    Tell us how you really feel. ;)
     
    unity_hgEuKdDFIveEIA likes this.
  7. Per

    Per

    Joined:
    Jun 25, 2009
    Posts:
    460
    Use visual studio with visual assist for a few minutes, then you'll be pretty aware of exactly what needs fixing in monodevelop. It's everything from refactoring through to hints, coloring and basic editing.
     
  8. RElam

    RElam

    Joined:
    Nov 16, 2009
    Posts:
    375
    I feel like even VS express is better, mostly because of weird little quirks and bugs in MD and a general sense that VS is near rock solid. I did switch from VA to ReSharper for Unity stuff, like it better for the most part, think when they have the c++ version available I'll never use VA again.

    For open source, I feel MD is very impressive, but I also feel it's an alpha/beta version, and not ready for primetime (the version currently with Unity).
     
  9. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,971
    I have this issue where the auto-completion works only 50% of the time, is it just me?
     
  10. Infrid

    Infrid

    Joined:
    Jan 14, 2012
    Posts:
    67
    I develop on mac, and I do iOS only titles that use Unity.

    I have an xcode rig project, in which I "inject" the unity developed gl views using my custom code and automator tasks.

    I find doing this means I can do my entire UI in cocoa touch (which is often required for my projects) and do as much code as possible in objective c.

    I have open on my lovely mac mini the following at all times:
    Appcode (for iOS development),
    Xcode (for editing my storyboards),
    Unity 3d,
    Windows 7 running in Parallels,
    Visual Studio.

    I do all my development in Visual Studio. Coding comfort, assistance and refactoring support are paramount to my workflow. Indeed, I do as much work as possible in objective c because the jetbrains appcode IDE is quite simply the best thing since sliced bread.

    I am utterly unable to work in monodevelop. Visual studio is a distant second to a jetbrains IDE; but it's the best I could get so I dropped the cash anyhow.

    The thing that screws my workflow is debugging. For the last 2 months I have not used any breakpoint debugger - I just log everything. It's a torture; but Visual Studio cannot see Unity as a remote debugging target (which I would need it to do, as it's a virtualised instance so as far as VS is concerend, my mac is a remote machine).

    I don't use MD for debugging as it's a memory hog, slow, crashes constantly, screws up my visual studio project, screws up my source files (doesn't play nice with VS edited files), and worst of all crashes unity. Starting MD is as good as kissing 15 minutes productivity goodbye.

    I'm desperate to get breakpoint debugging working from VS to a remote Unity instance. This would solve debugging issues for pure PC and virtualized PC users such as myself.

    I'd be happy to chip in some hours, if any kind of mac service was required.

    Really appreciate you starting the post btw.
     
  11. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    A bit off topic but I don't really see the sense in developing monodevelop further. It's a horrid piece of software that is vastly outdated. It's so horrid that I actually prefer just coding in Sublime Text. I'll even live without intellisense. Other than this, there is VS. VS is worth running windows for alone.

    I wouldn't really know where to start when it comes to improving MD but if I had to throw it out there, I would suggest a complete redesign of the entire app's front end. Make it accessible and easy to modify. Currently it's a bit brutal to get it looking and behaving how you want.
     
    Last edited: Oct 18, 2013
  12. Noisecrime

    Noisecrime

    Joined:
    Apr 7, 2010
    Posts:
    2,054
    Unlike others here I really like MD, never had an issue with losing intellisense, though do have it crash a bit often for my liking (using 2.83 Unity version).

    One feature that I'd really like to see is to have a split view layout to show two of the same or different scripts simultaneously on screen. There have been several times when such a feature would have saved me time.
     
  13. Per

    Per

    Joined:
    Jun 25, 2009
    Posts:
    460
    Yeah resharper looks very nice, I wasn't aware that hey were going to extend it to C++ so thanks for the heads up, I'll have to add it to my watch list.
     
  14. Infrid

    Infrid

    Joined:
    Jan 14, 2012
    Posts:
    67
    So this thread is just about improving MD?

    Ok. Misunderstood - thought we were talking about getting debugging working on visual studio. Improving MD is a complete waste of time.
     
  15. Reapazor

    Reapazor

    Joined:
    Jun 19, 2008
    Posts:
    173
    Alright, so I wanted 'constructive' suggestions ... its also a bit of a challenge because most people are using MD 3.x still ... but have a gander at what MD 4.x looks like :) Hopefully everyone will be rocking its loveliness soon ... and yes many of the complaints mentioned here are all resolved in 4.x.

    $screenshot1.jpg

    I'm more looking for features ... resharper, integrated blah blah ...

    Obviously everyone has their opinion. If you don't have anything constructive to share why say anything at all?
     
  16. Infrid

    Infrid

    Joined:
    Jan 14, 2012
    Posts:
    67
    You realize I could say just the same about you pointing our VS integration thread to your forum post, which afaic has nothing constructive to say about VS integration. Your post from my perspective was also blah blah... - you see.. it works both ways :)

    But enough of my bitching... As it goes.. Improving MD is a noble cause and I salute you for it. If you want features, look at appcode and other Jetbrains ide's

    Some of my most used features are:
    Refactoring of methods,
    generating local, class and other properties, and vars,
    with ability to infer return types, param types,
    keyboard shortcuts and quick fixes,
    hotkey to override/implement methods (i.e. press CTRL+O and you get a list of all members which can be overriden/implemented (you can toggle the list to show overrides/interface members)),
    auto implement interfaces,
    adding methods to interfaces,
    refactoring interface methods..
    Useful keyboard shortcuts for moving duplicating lines of code/selection, jumping to declaration, cycling through warning/error message line of code pointers,
    smart fixes such as automatically creating all case statements in a switch, inferring types in a foreach loop,
    find all usages,
    hotkey to show all members in a class, which allows filter and goto line corresponding to member (i.e. document outline filter on demand),
    local file history (with ability to diff, and rollback selection or entire file),
    Don't piss around with line endings from visual studio edited files,
    hotkey to step into super class,
    Apple click to go to declaration,
    Save save's all documents, not just current tab,
    Refactor - change method signature - either from method declaration, or inferred by calling with a new signature,
    Key to go to previous/next member,
    Clearly show warnings inline (I was just playing with MD 4 and warnings are invisible; but if I mouse over things I get a popup tip),
    Color schemes - perhaps it's in there - but ability to change the colors of the entire editor,
    Hotkey which shows list of recently opened files,
    Bonuses : push members up/down, extract class and extract interface.

    I have no idea how hard it is to develop for MD.. if the debugging was stable, I might be up for helping out.. I paid a lot of money for Visual Studio and I actually regret it.. it's better than MD in terms of features, but it's extraordinarily uncomfortable to use and all of the menus/options are just so goddamned ugggggly. if MD could be improved sufficiently to make it comfortable to code with I'd look into selling/transferring my license in a snap.

    For certain- the biggest features are the refactoring ones - ability to add/remove params to methods on the fly or from the method signature and infer types, so no more generating code which are vars, and look up the types instead.
     
    Last edited: Oct 20, 2013
  17. Arnleif

    Arnleif

    Joined:
    Sep 27, 2012
    Posts:
    10
    A few things things I want:

    1) While debugging: To see what the value of an enum is. It always says "The requested item has been unloaded".
    2) While debugging: That the value-watch-tooltip does NOT steal focus away from the editor. The mouse cursor is most likely over some code, always, meaning that editing or searching (f3) sends input to the tooltip.
    3) While debugging: To be able to step through switch-cases. (We are not in 1994 anymore..)
    4) While debugging: To be able to inspect the content of a list, holding a class I've defined. List<MyEntity> myList;

    5) To not reuse the MD window when I open a file from a second unity project.
    6) Editor should have different color than comment-color on #if #endif


    Thank you. Looking forward to get these few tho very helpful additions.
     
  18. Sisso

    Sisso

    Joined:
    Sep 29, 2009
    Posts:
    196
    I make it my words...

    My unique problem is that it run too slow in OS X inside a virtual machine. It is rare the ocasions that I need to code in this environment, but VI is a good replacement :p
     
  19. chelnok

    chelnok

    Joined:
    Jul 2, 2012
    Posts:
    680
    Same problem. In my case it seems to be pretty random if it works or not.
     
  20. Sisso

    Sisso

    Joined:
    Sep 29, 2009
    Posts:
    196
    I think that it only works the first time after you write the ".", or something like it :p
     
  21. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    At the moment I am using Xamarin Studio and I expect it will be mostly what we are going to get with Unity 4.3's new MonoDevelop. For me the basis is very solid and I really like it to work with Xamarin Studio. There are a few bugs, like copy and paste from another application doesn't work reliably in Windows, but that is probably not what your are looking for.

    Improvements I would love to see are not inside of MonoDevelop, but more MonoDevelop in combination with Unity.

    Optional Arguments
    Unity always reverts the .Net version settings as described here and thus MonoDevelop reports errors:
    http://forum.unity3d.com/threads/67...ult-parameters?p=810216&viewfull=1#post810216

    Custom C# Format
    Code formatting and the like hardly works for custom C# source code policies. I tried several things out on that to get it to a level where it is acceptable for me, but I ended up deactivating automatic code formatting. I deactivated it long ago and tried it again with Xamarin Studio, but it still doesn't feel reliable. If you want more details on that, just ask. I simply can't remember them right now and would need to try it again.

    Creating Dlls
    I don't know why, but so far I was not able to create dlls in MonoDevelop. I ended up creating a custom dll creator for my purposes in Unity. I am unable to even create a simple dll with my classes. Though, that may just be me :)

    Those are areas where I struggle from time to time in MonoDevelop.
     
  22. Dantus

    Dantus

    Joined:
    Oct 21, 2009
    Posts:
    5,667
    Automatic Completion Sorting
    When the automatic completion becomes visible, there are often many possibilities, especially if the object's type inherits from MonoBehaviour. It would be nice if it was automatically sorted based on inheritance or if we had something like a short cut for it. It would probably take some time to get a comfortable solution for it.

    This one came to my mind thanks to this twitter message. I remember that I once worked with an IDE that had something in that direction, unfortunately I can't remember which one.
     
  23. cesarpo

    cesarpo

    Joined:
    Jun 8, 2013
    Posts:
    97
    I think it would be a nice feature to have the code completion work for more than five minutes straight :p
     
  24. W-Walter

    W-Walter

    Joined:
    Dec 14, 2013
    Posts:
    14
    Monodevelop is just slow. It takes to long to reconise errors dynamically (and forget them). The time it takes to rename a method ect is also really annoying. I would also like better code layout and formatting. For all these reasons I use visual studio. But... when my code stuffs up (around 90% of the time) I always have to open up MD for debugging.