Web-Based IDE Improvements

Security isn’t really an issue with a persistent text file… It’s just raw read access only, wouldn’t have any database storage like the current log.debug function does… In fact, one could argue the current logging infrastructure is far more vulnerable…

This would simply write out a text file server side, just like cameras write images to the cloud, and then only in the IDE would you be able to view the text file.

@pstuart you might be right there. I know from where I work, that we deal with issues similar to this all the time. But, this is not my area of expertise. So I will defer to you (SMILE)

This might be simple, might be impossible…

IDE Code window…

Word Wrap Text.

1 Like

+1,000,000 :smiley:

Blah

Is there any way to make it so that the “live logging” window can be scaled “portrait” - it cuts off real short when it is long

1 Like

May I suggest that the Cloud9 web-based IDE is worth taking a close look at for further ideas?

It has “runners” (execution / debug environments) for a few languages (e.g., Node.js) and apparently there is a way to plug-in more (Groovy can be selected for an editing environment).

It is a nice multi-pane IDE … I’m just starting to use it, so I can’t say for sure whether it beats my old standard of VisualStudio (or Eclipse, etc.). One major feature that is a benefit on large projects is concurrent - collaborative editing ability!

https://c9.io/

…Terry.

1 Like

Can we also force people to use semi-colons at the end of every statement of Groovy code?;

OK … I’m sure this is a religious argument. I’m just new to Groovy and I have a huge pet peeve about languages that don’t have mandatory statement terminators. It’s just asking for trouble, IMHO.

Hmph; Thanks++;

I second all the suggestions and would like to add one small thing “SPEED”. The slowness of the IDE when coding, saving, setting location and trying to simulate kills you most of the times.

3 Likes

Even better would be github integration combined with an ST plugin for the atom editor.

1 Like

atom.io is the bomb! Started using it a few months ago, coming from smultron. (Mac User)

I cannot get into Atom over Sublime Text 3. Sell me :slight_smile:

@Ben Honestly, I still prefer sublime text for my larger projects. But atom is getting better all the time. For small projects I have been using atom. It is free and hackable and it’s development and user base will soon eclipse sublime.

If I didn’t already use Sublime, I would probably be super excited about Atom. But since I do use Sublime (and have it lovingly configured to do exactly what I want), I don’t see an advantage to Atom.

The only real difference for me is the responsiveness. I have atom set up to behave just like my sublime config. The fact that sublime is a compiled application makes it much more efficient. Given that all I do all day is write code and I paid for sublime, I keep using it. Once atom performs better, I will switch completely.

Are there plans to and Intellisense to the IDE? I think adding this, while most-likely a considerable investment for SmartThings, would have a large payoff to the community. I can tell you from my experience that I do not have every class and library memorized. I’m just struggling to learn the basics of Groovy!

3 Likes

Autocompleting and in-line code references are some of the most requested features. We are looking into these.

1 Like

A debugger with variable evaluation.
Code complete.
Search - through current code, all your own code, and all code.

2 Likes

Be careful what you ask for, Intella-sense can easily turn into an intella-menace…

Found this thread a bit late, but here is my 2 cents worth of inputs :

  • reliable logging : sometimes, for unpredictable reasons, log stops working; at the same time, while the log pane appears empty, the SmartApp or Device Handler continue to work… or not
  • strictly identical behavior between IDE and iOS/Android mobile App (ex: ticket #63621)
  • IDE safe for saving modifications : sometimes (usually after some lengthy inactive IDE period), just when you want to save your latest modifications, the IDE brings you to the logging page, and once logged again, you discover you have lost all your latest modifications :frowning:
  • IDE lack of quirky behavior : to make it work reliably after a modification, I have to Save / Publish for me / goto SmartApps / select again my SmartApp / enter Location and Preferences /. Otherwise, when I just Edit and Install, nothing happens (or the log does not show)
  • IDE error messages when some incompatibility exists between the IDE and the browser : for example, 10 days ago, I thought all my saved SmartApps had disappeared from the cloud/IDE : when selected, their window was totally empty (ticket #75037). Then I discovered it was a new and unexpected regression, with TenFourFox browser now incompatible with IDE, while it was perfectly OK before (Safari was still working)
  • color schemes which make sense and are not kaleidoscopic : the latest modifications of colors are definitely not a plus !
2 Likes

Just repeating myself here because I just shared my first “substantial” SmartApp and I used Cloud9 to do my editing. (The editor supports a long list of coding languages, including Groovy.)

Cloud9 provides a “workspace” (a virtual Linux session) with various tools including git (and it fully supports remote repos on GitHub; so I was able to do my git-ing very easily while on Cloud9.

Cloud9 will even SSH out to your own execution environments (ssh + Node.js required?), so integration with SmartThing’s simulator is not out of the realm of possibilities.

More general, their rich editor is Open-Source, “ACE”, (a successor of Mozilla Skywriter). At first glance, it seems quite “atom” like … I’m sure there are some detailed reviews and comparisons out there.

http://ace.c9.io/#nav=about
http://ace.c9.io/build/kitchen-sink.html

Atom or ACE … any Open-Source “full feature” code editor would be a great candidate for SmartThings IDE; and, a GitHub (or a SmartThings hosted git repo?) seems an obvious choice for code management and release management. Owners and contributors can be assigned to the repos for each SmartApp, and pushing for publication just requires merging into the “release” branch for the project. … Nice, no?

1 Like