Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [orion-dev] Try out a new outline view for Javascript

Hi,
I've tried to install the outliner, following the instructions supplied, but without success. As the plugin loads, I get an error message TypeError  "non_object_property_call" thrown in the _responseHandler in pluginregistry.js. I'm running Chrome v 15 on windows, with the Integration build from 20110911. Can anyone tell me what this error means ?

Thanks

On Thu, Sep 8, 2011 at 6:05 AM, John J Barton <johnjbarton@xxxxxxxxxxxxxxx> wrote:
Ok thanks for the hint!
http://johnjbarton.github.com/

I'm open to *any* feedback. If you don't see names for functions please look in the console and mail me any error messages.  (Eventually I deactivate the console and error messages).

I added 'demo' page that I will be expanding with more cases.

jjb


On Wed, Sep 7, 2011 at 10:45 AM, John Arthorne <John_Arthorne@xxxxxxxxxx> wrote:
John, if you make a gh-pages branch in your fork of the outliner repo, then people could install the plugin directly from github:

http://pages.github.com/

Currently anyone who wants to try your plugin needs to copy all the related files to some other server, which decreases the chances they'll actually try it ;)

John A



09/07/2011 12:51 AM

Please respond to
Orion developer discussions <orion-dev@xxxxxxxxxxx>

To
Orion developer discussions <orion-dev@xxxxxxxxxxx>
cc
Subject
Re: [orion-dev] Try out a new outline view for _javascript_





I made good progress based on Mark's plugin: https://github.com/johnjbarton/outliner
I renamed uglifoc to Nonymous:
https://github.com/johnjbarton/nonymous

Right off I can see this plugin will be great for me at least: I found two bugs and two design issues in the first 5 minutes ;-).

Bugs: I fail on define() and one of the assignment test cases.

Design:

x = window.addEventListener('load', function(event) {}, false);
// x<(load-fal)

addEventListener('load', function(event) {}, false);
// addEventListener(load-fals);


x = window.addEventListener('load', function(event) {}, false);
  Mark: load(event),
  Nonymous-design:  x<(load-fal) (more about this another time)

// x<(load-fal)
// x<(load-fal)

addEventListener('load', function(event) {}, false);
  Mark: load(event)
  Nonymous-design: // addEventListener(load-fals)

I'd like to know the reasoning on the Mark result. It's not bad in this case, except for the duplication issue.

In the Nonymous names the parenthesis do *not* mean function args.  I think that is bad design. We were not thinking about showing the arguments after function names the way the outliner does. We use the parens to mean "in a function argument", so addEventListener(load-fals) is code for "a function defn in an argument to addEventListener with other arguments "load" and "fals" (cut off by our clipper).

If we add arguments and open up the clipper we could get:
   addEventListener(load-false)(event)
but that seems like it will lead to confusion. Plus pretty soon you have the entire line of source ;-).  Needs work.

On another front, building up plugins from github projects:

I'm not to keen on the way my fork ends up in terms of file layout. Mark has lib/UglifyJs and lib/transformjs, so I added lib/nonymous. That part seems good, but my tree also has UglifyJS, so we end up with:
  lib/nonymous/UglifyJS and
  lib/UglifyJS
in the plugin source tree. Beyond being ugly (heh), this can combine with path and package arguments to require.js to leave us confused about which version of UglifyJS is in play. If anyone has any experience or has seen other ways to do this please let me know.

jjb


On Fri, Sep 2, 2011 at 2:05 PM, John Arthorne <John_Arthorne@xxxxxxxxxx> wrote:
Mark, I tried this out and I have to say it's a vast improvement on the jslint outline already!  Don't forget to add license/copyright headers to your js files... this might be something we want to eventually consume back.

Better heuristics on names would be fantastic so I can't wait to see jjb's fork.





Mark MacDonald/Ottawa/IBM@IBMCA
Sent by: orion-dev-bounces@xxxxxxxxxxx

09/02/2011 02:29 PM


Please respond to

Orion developer discussions <
orion-dev@xxxxxxxxxxx>

To
Orion developer discussions <orion-dev@xxxxxxxxxxx>
cc
Subject
Re: [orion-dev] Try out a new outline view for _javascript_







That would be very cool!

I've split it into
https://github.com/mamacdon/outliner

Mark

John J Barton ---09/01/2011 12:08:47 PM---Any chance you would consider breaking out your plugin into a new github repro? Then I could fork it

From:
John J Barton <johnjbarton@xxxxxxxxxxxxxxx>
To:
Orion developer discussions <orion-dev@xxxxxxxxxxx>
Date:
09/01/2011 12:08 PM
Subject:
Re: [orion-dev] Try out a new outline view for _javascript_
Sent by:
orion-dev-bounces@xxxxxxxxxxx




Any chance you would consider breaking out your plugin into a new github repro? Then I could fork it and incorporate uglifoc, 

https://github.com/johnjbarton/uglifoc
which has a more elaborate heuristic for names based on the work of Salman Mirghasemi.

jjb



On Thu, Sep 1, 2011 at 8:40 AM, Mark MacDonald <
Mark_MacDonald@xxxxxxxxxx> wrote:
Recently I've been experimenting with UglifyJS's parse-js library [1] for building _javascript_ syntax trees. I've used it to provide a version of the outline view that shows your _javascript_ functions in a tree, rather than the flat list we currently get from JSLint.

It's packaged as an Orion plugin, which you can try out like this:

1.
Make sure you're running an Orion build from 08/29 or later
2.
(Workaround for Bug 355895) Open the file /org.eclipse.orion.client.core/web/defaults.pref and comment out this line:
"/plugins/jslintPlugin.html":true,

Then reload
http://localhost:8080/defaults.pref in your browser to make sure it's not cached.
3.
Log into Orion, go to the Plugins page, uninstall jslintPlugin.html
4.
Install the new plugin:
http://mamacdon.github.com/0.3/plugins/newoutline/newoutlinePlugin.html
5.
The next time you edit a _javascript_ file, you'll see the outline tree in the left-hand pane.


To revert, uninstall newoutlinePlugin.html and uncomment the line from Step 2.

The plugin uses a few heuristics to infer the names of anonymous functions. If you find cases where the names are confusing or wrong, please let me know.

Mark


[1]
https://github.com/mishoo/UglifyJS/blob/master/lib/parse-js.js

_______________________________________________
orion-dev mailing list

orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev
_______________________________________________
orion-dev mailing list

orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev
_______________________________________________
orion-dev mailing list

orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev


_______________________________________________
orion-dev mailing list

orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev

_______________________________________________
orion-dev mailing list
orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev


_______________________________________________
orion-dev mailing list
orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev



_______________________________________________
orion-dev mailing list
orion-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/orion-dev



Back to the top