GithubHelp home page GithubHelp logo

amdbutler's People

Contributors

gavinr avatar stdavis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mokkabonna

amdbutler's Issues

Remove causes empty params

Remove _TemplatedMixin from this:

define([
    'agrc/modules/HelperFunctions',

    'dijit/Dialog',
    'dijit/_TemplatedMixin',
    'dijit/_WidgetBase',
    'dijit/_WidgetsInTemplateMixin',

    'dojo/_base/array',
    'dojo/_base/declare',
    'dojo/_base/lang',
    'dojo/io/script',
    'dojo/json',
    'dojo/text!app/templates/Feedback.html',

    'esri/layers/ArcGISTiledMapServiceLayer',
    'esri/map',

    'ijit/widgets/notify/ChangeRequest',

    'dijit/form/Button',
    'dijit/form/Form',
    'dijit/form/RadioButton',
    'dijit/form/Textarea',
    'dijit/form/ValidationTextBox',
    'dijit/layout/ContentPane',
    'dijit/layout/StackContainer',
    'dojox/validate/regexp'
],

function (
    helpers,

    Dialog,
    _TemplatedMixin,
    _WidgetBase,
    _WidgetsInTemplateMixin,

    array,
    declare,
    lang,
    script,
    dojoJson,
    template,

    ArcGISTiledMapServiceLayer,
    Map,

    ChangeRequest
) {});

User setting for single-line groupings

For readability, I prefer to have my function parameters grouped per line. So this:
before

... would be this instead:
b

Seems to me this would be an excellent "user setting" option. I'm happy to help and provide a PR if this sounds good to the team.

AMD Butler commands not accessible in Windows version of Sublime 3

No matter what version/build of Sublime Text 3 for Windows I try to install (x86/x64, portable/full, dev/stable/old, etc.), I can't seem to get AMD Butler to work with it (I've tried older versions of AMD Butler as well). After installing Sublime, I install Package Control, and then from Package Control I install AMD Butler and it says it installs successfully, but no AMD Butler commands ever show up in the command palette. I've tried this on multiple Windows 7 machines with the same result.

There are no errors in the console - it just shows these lines on loading:
reloading plugin AMD Butler.init
reloading plugin AMD Butler.amdbutler
reloading plugin AMD Butler.buffer_parser
reloading plugin AMD Butler.crawler
reloading plugin AMD Butler.zipper

References in declare

should amd butler remove references to items in the

declare([], {

if they are removed.

No module named 'Adafruit_GPIO.I2C'

Hi i have a problem
import Adafruit_CharLCD
when importing this address gives me this error

ModuleNotFoundError: No module named 'Adafruit_GPIO.I2C'

Blank lines setting

What do you think of a new setting to disable blank lines addition (purely a personal styling preference which doesn't do well with other style guides as it currently is)?

Removing import with no param causes hanging comma

define([
    './config',

    'dijit/_TemplatedMixin',
    'dijit/_WidgetBase',

    'dojo/_base/array',
    'dojo/_base/declare',
    'dojo/_base/lang',
    'dojo/query',
    'dojo/request',
    'dojo/text!./templates/Identify.html',

    'proj4/dist/amd/proj4.js',
    'xstyle/css!app/resources/Identify.css'
], function(
    config,

    _TemplatedMixin,
    _WidgetBase,

    array,
    declare,
    lang,
    query,
    request,
    template
) {});

remove proj4...

define([
    './config',

    'dijit/_TemplatedMixin',
    'dijit/_WidgetBase',

    'dojo/_base/array',
    'dojo/_base/declare',
    'dojo/_base/lang',
    'dojo/query',
    'dojo/request',
    'dojo/text!./templates/Identify.html',

    'xstyle/css!app/resources/Identify.css'
], function(
    config,

    _TemplatedMixin,
    _WidgetBase,

    array,
    declare,
    lang,
    query,
    request,
    template,


) {});

Error trying to add module

Hi when I solved the issue #23

#23

When trying to add a module I am getting on the log console:

Traceback (most recent call last):
File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 268, in on_modified
v = sublime.View(view_id)
File "C:\Program Files\Sublime Text 3\sublime.py", line 549, in init
self.selection = Selection(id)
RuntimeError: maximum recursion depth exceeded
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
TypeError: () takes 0 positional arguments but 1 was given
error: plugin_host has exited unexpectedly, plugin functionality won't be available until Sublime Text has been restarted

And the plugin stops.

I though it was because I didn't set the path to the dojo api. But I set it and I am getting the same error.

I am running in the same environment as described on issue #23 .

UPDATE:

When solving issue #23 this issue disappeared.

UPDATE:

This error occurred because there where no modules loaded in memory. If we run the refresh modules once this error should not occur even if the refresh did not load any module.

UPDATE:

Turns out this error was isolated from #23... It was a recursion problem on amdbutlet.py

class AmdButlerAdd(_Enabled, sublime_plugin.TextCommand):
    def run(self, edit):
        if not hasattr(self.view, 'mods'):
            _set_mods(self.view)
            #self.view.run_command('amd_butler_add')
        else:
            self.view.window().show_quick_panel(self.view.mods, self.on_mod_selected)

def on_mod_selected(self, i):
    if i != -1:
        pair = self.view.mods[i]
        self.view.run_command('amd_butler_internal_add',{'pair': pair})

The call to _set_mods(self.view) is not synchronous! So a recursion issue will occur if self.view.run_command('amd_butler_add') was not commented.

I also changed

sublime.active_window().show_input_panel('name of folder containing AMD packages (e.g. "src")', '', on_folder_defined, lambda: None, lambda: None)

to

sublime.active_window().show_input_panel('name of folder containing AMD packages (e.g. "src")', '', on_folder_defined, None, None)

The first version was giving me some warning on the console:

TypeError: <lambda>() takes 0 positional arguments but 1 was given

UPDATE:

The previous fix would work but to make the preferences really work it was need some more tweaks. Ieave my version of the amdbutler.py hear in base64 utf8.

aW1wb3J0IHN1YmxpbWUNCmltcG9ydCBzdWJsaW1lX3BsdWdpbg0KaW1wb3J0IG9zDQpmcm9tIC4gaW1wb3J0IGJ1ZmZlcl9wYXJzZXINCmZyb20gLiBpbXBvcnQgY3Jhd2xlcg0KZnJvbSAuIGltcG9ydCB6aXBwZXINCg0KDQpQQVRIX1NFVFRJTkdfTkFNRSA9ICdhbWRfcGFja2FnZXNfYmFzZV9wYXRoJw0KU0VUVElOR1NfRklMRV9OQU1FID0gJ0FtZEJ1dGxlci5zdWJsaW1lLXNldHRpbmdzJw0KDQoNCmRlZiBfYWxsX3RleHQodmlldyk6DQogICAgcmV0dXJuIHZpZXcuc3Vic3RyKHN1YmxpbWUuUmVnaW9uKDAsIHZpZXcuc2l6ZSgpKSkNCg0KDQpkZWYgX2dldF9zb3J0ZWRfcGFpcnModmlldyk6DQogICAgdHJ5Og0KICAgICAgICBpbXBvcnRzX3NwYW4gPSBidWZmZXJfcGFyc2VyLmdldF9pbXBvcnRzX3NwYW4oX2FsbF90ZXh0KHZpZXcpKQ0KICAgICAgICBwYXJhbXNfc3BhbiA9IGJ1ZmZlcl9wYXJzZXIuZ2V0X3BhcmFtc19zcGFuKF9hbGxfdGV4dCh2aWV3KSkNCiAgICAgICAgcmV0dXJuIHppcHBlci56aXAodmlldy5zdWJzdHIoc3VibGltZS5SZWdpb24oKmltcG9ydHNfc3BhbikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnN1YnN0cihzdWJsaW1lLlJlZ2lvbigqcGFyYW1zX3NwYW4pKSkNCiAgICBleGNlcHQgYnVmZmVyX3BhcnNlci5QYXJzZUVycm9yIGFzIGVyOg0KICAgICAgICBzdWJsaW1lLmVycm9yX21lc3NhZ2UoZXIubWVzc2FnZSkNCg0KDQpkZWYgX3VwZGF0ZV93aXRoX3BhaXJzKHZpZXcsIGVkaXQsIHBhaXJzKToNCiAgICBpbXBvcnRzX3NwYW4gPSBidWZmZXJfcGFyc2VyLmdldF9pbXBvcnRzX3NwYW4oX2FsbF90ZXh0KHZpZXcpKQ0KICAgIHBhcmFtc19zcGFuID0gYnVmZmVyX3BhcnNlci5nZXRfcGFyYW1zX3NwYW4oX2FsbF90ZXh0KHZpZXcpKQ0KDQogICAgIyByZXBsYWNlIHBhcmFtcyAtIGRvIHRoZXNlIGZpcnN0IHNpbmNlIHRoZXkgd29uJ3QgYWZmZWN0IHRoZQ0KICAgICMgaW1wb3J0cyByZWdpb24NCiAgICBwYXJhbXNfdHh0ID0gemlwcGVyLmdlbmVyYXRlX3BhcmFtc190eHQocGFpcnMsICdcdCcpDQogICAgdmlldy5yZXBsYWNlKGVkaXQsIHN1YmxpbWUuUmVnaW9uKCpwYXJhbXNfc3BhbiksIHBhcmFtc190eHQpDQoNCiAgICAjIHJlcGxhY2UgaW1wb3J0cw0KICAgIGltcG9ydF90eHQgPSB6aXBwZXIuZ2VuZXJhdGVfaW1wb3J0c190eHQocGFpcnMsICdcdCcpDQogICAgdmlldy5yZXBsYWNlKGVkaXQsIHN1YmxpbWUuUmVnaW9uKCppbXBvcnRzX3NwYW4pLCBpbXBvcnRfdHh0KQ0KDQpkZWYgb25fZm9sZGVyX2RlZmluZWQodmlldyk6DQogICAgZGVmIG9uX2ZvbGRlcl9kZWZpbmVkX2NvbXB1dGVkKHR4dCk6DQogICAgICAgIHByb2plY3QgPSBfZ2V0X3Byb2plY3RfZGF0YSgpDQogICAgICAgIGlmIHByb2plY3QgaXMgTm9uZToNCiAgICAgICAgICAgICMgbm8gcHJvamVjdCBvcGVuIHVzZSBkZWZhdWx0IHNldHRpbmcNCiAgICAgICAgICAgIHNldHRpbmdzID0gc3VibGltZS5sb2FkX3NldHRpbmdzKFNFVFRJTkdTX0ZJTEVfTkFNRSkNCiAgICAgICAgICAgIHNldHRpbmdzLnNldChQQVRIX1NFVFRJTkdfTkFNRSwgdHh0KQ0KICAgICAgICAgICAgc3VibGltZS5zYXZlX3NldHRpbmdzKFNFVFRJTkdTX0ZJTEVfTkFNRSkNCiAgICAgICAgZWxzZToNCiAgICAgICAgICAgIHByb2plY3RbJ3NldHRpbmdzJ10udXBkYXRlKHtQQVRIX1NFVFRJTkdfTkFNRTogdHh0fSkNCiAgICAgICAgICAgIF9zYXZlX3Byb2plY3RfZGF0YShwcm9qZWN0KQ0KICAgICAgICBfZ2V0X2F2YWlsYWJsZV9pbXBvcnRzKHZpZXcpDQogICAgcmV0dXJuIG9uX2ZvbGRlcl9kZWZpbmVkX2NvbXB1dGVkDQoJDQpkZWYgX3NldF9tb2RzKHZpZXcpOg0KICAgIA0KCQkNCiAgICBwcm9qZWN0ID0gX2dldF9wcm9qZWN0X2RhdGEoKQ0KCQ0KICAgICMgY3JlYXRlIHNldHRpbmdzIHByb2plY3QgcHJvcCBpZiBuZWVkZWQNCiAgICBpZiBwcm9qZWN0IGlzIG5vdCBOb25lIGFuZCBwcm9qZWN0LmdldCgnc2V0dGluZ3MnLCBGYWxzZSkgaXMgRmFsc2U6DQogICAgICAgIHByb2plY3QudXBkYXRlKHsnc2V0dGluZ3MnOiB7UEFUSF9TRVRUSU5HX05BTUU6IEZhbHNlfX0pDQogICAgICAgIF9zYXZlX3Byb2plY3RfZGF0YShwcm9qZWN0KQ0KICAgIA0KICAgIGlmIHByb2plY3QgaXMgbm90IE5vbmUgYW5kIHByb2plY3RbJ3NldHRpbmdzJ10uZ2V0KFBBVEhfU0VUVElOR19OQU1FLCBGYWxzZSkgaXMgbm90IEZhbHNlOg0KICAgICAgICBfZ2V0X2F2YWlsYWJsZV9pbXBvcnRzKHZpZXcpDQogICAgZWxzZToNCiAgICAgICAgI3N1YmxpbWUuYWN0aXZlX3dpbmRvdygpLnNob3dfaW5wdXRfcGFuZWwoJ25hbWUgb2YgZm9sZGVyIGNvbnRhaW5pbmcgQU1EIHBhY2thZ2VzIChlLmcuICJzcmMiKScsICcnLCBvbl9mb2xkZXJfZGVmaW5lZCwgbGFtYmRhOiBOb25lLCBsYW1iZGE6IE5vbmUpDQogICAgICAgIHN1YmxpbWUuYWN0aXZlX3dpbmRvdygpLnNob3dfaW5wdXRfcGFuZWwoJ25hbWUgb2YgZm9sZGVyIGNvbnRhaW5pbmcgQU1EIHBhY2thZ2VzIChlLmcuICJzcmMiKScsICcnLCBvbl9mb2xkZXJfZGVmaW5lZCh2aWV3KSwgTm9uZSwgTm9uZSkNCg0KZGVmIF9nZXRfYXZhaWxhYmxlX2ltcG9ydHModmlldyk6DQogICAgcHJvamVjdCA9IF9nZXRfcHJvamVjdF9kYXRhKCkNCiAgICBpZiBwcm9qZWN0IGlzIE5vbmU6DQogICAgICAgIHNldHRpbmdzID0gc3VibGltZS5sb2FkX3NldHRpbmdzKFNFVFRJTkdTX0ZJTEVfTkFNRSkNCiAgICAgICAgZm9sZGVyX25hbWUgPSBzZXR0aW5ncy5nZXQoUEFUSF9TRVRUSU5HX05BTUUpDQogICAgICAgIHBhdGggPSBfdmFsaWRhdGVfZm9sZGVyKHZpZXcsIGZvbGRlcl9uYW1lKQ0KICAgICAgICBpZiBwYXRoIGlzIE5vbmU6DQogICAgICAgICAgICBzZXR0aW5ncy5lcmFzZShQQVRIX1NFVFRJTkdfTkFNRSkNCiAgICAgICAgICAgIHN1YmxpbWUuc2F2ZV9zZXR0aW5ncyhTRVRUSU5HU19GSUxFX05BTUUpDQogICAgICAgICAgICByZXR1cm4NCiAgICBlbHNlOg0KICAgICAgICBzZXR0aW5ncyA9IHByb2plY3RbJ3NldHRpbmdzJ10NCiAgICAgICAgZm9sZGVyX25hbWUgPSBzZXR0aW5nc1tQQVRIX1NFVFRJTkdfTkFNRV0NCiAgICAgICAgcGF0aCA9IF92YWxpZGF0ZV9mb2xkZXIodmlldywgZm9sZGVyX25hbWUpDQogICAgICAgIGlmIHBhdGggaXMgTm9uZToNCiAgICAgICAgICAgIGRlbCBzZXR0aW5nc1tQQVRIX1NFVFRJTkdfTkFNRV0NCiAgICAgICAgICAgIF9zYXZlX3Byb2plY3RfZGF0YShwcm9qZWN0KQ0KDQogICAgc3VibGltZS5zdGF0dXNfbWVzc2FnZSgnQU1EIEJ1dGxlcjogUHJvY2Vzc2luZyBtb2R1bGVzIGluIHt9IC4uLicuZm9ybWF0KHBhdGgpKQ0KICAgIHZpZXcubW9kcyA9IGNyYXdsZXIuY3Jhd2wocGF0aCkNCiAgICBzdWJsaW1lLnN0YXR1c19tZXNzYWdlKCdBTUQgQnV0bGVyOiBQcm9jZXNzaW5nIGNvbXBsZXRlLiB7fSB0b3RhbCBtb2R1bGVzIHByb2Nlc3NlZC4nLmZvcm1hdChsZW4odmlldy5tb2RzKSkpDQoNCg0KZGVmIF92YWxpZGF0ZV9mb2xkZXIodmlldywgZm9sZGVyX25hbWUpOg0KICAgIA0KICAgICNSRUxBVElWRSBQQVRIDQogICAgDQogICAgI2lmKHZpZXcuZmlsZV9uYW1lKCkgaXMgTm9uZSk6DQogICAgIyAgICBzdWJsaW1lLmVycm9yX21lc3NhZ2UoJ0Nhbm5vdCB2YWxpZGF0ZSAiJytmb2xkZXJfbmFtZSsnIi4gRmlsZSBuYW1lIGlzIG5vdCBzYXZlZCEnKQ0KICAgICMgICAgcmV0dXJuIE5vbmUNCiAgICANCiAgICAjRXJyb3IgI3BhdGggPSBvcy5wYXRoLmpvaW4odmlldy5maWxlX25hbWUoKS5zcGxpdChmb2xkZXJfbmFtZSlbMF0sZm9sZGVyX25hbWUpDQogICAgI3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHZpZXcuZmlsZV9uYW1lKCkpLGZvbGRlcl9uYW1lKQ0KICAgIA0KICAgICNBQlNPTFVURSBQQVRIDQogICAgcGF0aCA9IGZvbGRlcl9uYW1lDQogICAgDQogICAgaWYgb3MucGF0aC5leGlzdHMocGF0aCk6DQogICAgICAgIHJldHVybiBwYXRoDQogICAgZWxzZToNCiAgICAgICAgc3VibGltZS5lcnJvcl9tZXNzYWdlKCdDb3VsZCBub3QgZmluZDoge30hJy5mb3JtYXQocGF0aCkpDQogICAgICAgIHJldHVybiBOb25lDQoNCg0KZGVmIF9nZXRfcHJvamVjdF9kYXRhKCk6DQogICAgcmV0dXJuIHN1YmxpbWUuYWN0aXZlX3dpbmRvdygpLnByb2plY3RfZGF0YSgpDQoNCg0KZGVmIF9zYXZlX3Byb2plY3RfZGF0YShkYXRhKToNCiAgICByZXR1cm4gc3VibGltZS5hY3RpdmVfd2luZG93KCkuc2V0X3Byb2plY3RfZGF0YShkYXRhKQ0KDQoNCmNsYXNzIF9FbmFibGVkKG9iamVjdCk6DQogICAgZGVmIGlzX2VuYWJsZWQoc2VsZik6DQogICAgICAgIHJldHVybiBzZWxmLnZpZXcuc2V0dGluZ3MoKS5nZXQoJ3N5bnRheCcpLmZpbmQoJ0phdmFTY3JpcHQnKSAhPSAtMQ0KDQoNCmNsYXNzIEFtZEJ1dGxlclNvcnQoX0VuYWJsZWQsIHN1YmxpbWVfcGx1Z2luLlRleHRDb21tYW5kKToNCiAgICBkZWYgcnVuKHNlbGYsIGVkaXQpOg0KICAgICAgICBfdXBkYXRlX3dpdGhfcGFpcnMoc2VsZi52aWV3LCBlZGl0LCBfZ2V0X3NvcnRlZF9wYWlycyhzZWxmLnZpZXcpKQ0KDQoNCmNsYXNzIEFtZEJ1dGxlckFkZChfRW5hYmxlZCwgc3VibGltZV9wbHVnaW4uVGV4dENvbW1hbmQpOg0KICAgIGRlZiBydW4oc2VsZiwgZWRpdCk6DQogICAgICAgICNpZiBub3QgaGFzYXR0cihzZWxmLnZpZXcsICdtb2RzJyk6DQogICAgICAgICMgICAgX3NldF9tb2RzKHNlbGYudmlldykNCiAgICAgICAgIyAgICAjc2VsZi52aWV3LnJ1bl9jb21tYW5kKCdhbWRfYnV0bGVyX2FkZCcpDQogICAgICAgICNlbHNlOg0KICAgICAgICAjICAgIHNlbGYudmlldy53aW5kb3coKS5zaG93X3F1aWNrX3BhbmVsKHNlbGYudmlldy5tb2RzLCBzZWxmLm9uX21vZF9zZWxlY3RlZCkNCiAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi52aWV3LCAnbW9kcycpOg0KICAgICAgICAgICAgb25fZm9sZGVyX2RlZmluZWQoc2VsZi52aWV3KShzdWJsaW1lLmxvYWRfc2V0dGluZ3MoU0VUVElOR1NfRklMRV9OQU1FKS5nZXQoUEFUSF9TRVRUSU5HX05BTUUpKQ0KICAgICAgICANCiAgICAgICAgc2VsZi52aWV3LndpbmRvdygpLnNob3dfcXVpY2tfcGFuZWwoc2VsZi52aWV3Lm1vZHMsIHNlbGYub25fbW9kX3NlbGVjdGVkKQ0KCQkNCg0KICAgIGRlZiBvbl9tb2Rfc2VsZWN0ZWQoc2VsZiwgaSk6DQogICAgICAgIGlmIGkgIT0gLTE6DQogICAgICAgICAgICBwYWlyID0gc2VsZi52aWV3Lm1vZHNbaV0NCiAgICAgICAgICAgIHNlbGYudmlldy5ydW5fY29tbWFuZCgnYW1kX2J1dGxlcl9pbnRlcm5hbF9hZGQnLHsncGFpcic6IHBhaXJ9KQ0KDQoNCmNsYXNzIEFtZEJ1dGxlclJlbW92ZShfRW5hYmxlZCwgc3VibGltZV9wbHVnaW4uVGV4dENvbW1hbmQpOg0KICAgIGRlZiBydW4oc2VsZiwgZWRpdCk6DQogICAgICAgIHNlbGYucGFpcnMgPSBfZ2V0X3NvcnRlZF9wYWlycyhzZWxmLnZpZXcpDQoNCiAgICAgICAgc2VsZi52aWV3LndpbmRvdygpLnNob3dfcXVpY2tfcGFuZWwoDQogICAgICAgICAgICB6aXBwZXIuc2NydWJfbm9uZXMoc2VsZi5wYWlycyksIHNlbGYub25fbW9kX3NlbGVjdGVkKQ0KDQogICAgZGVmIG9uX21vZF9zZWxlY3RlZChzZWxmLCBpKToNCiAgICAgICAgaWYgaSAhPSAtMToNCiAgICAgICAgICAgIHNlbGYucGFpcnMucG9wKGkpDQogICAgICAgICAgICBzZWxmLnZpZXcucnVuX2NvbW1hbmQoJ2FtZF9idXRsZXJfaW50ZXJuYWxfdXBkYXRlJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3BhaXJzJzogc2VsZi5wYWlyc30pDQoNCg0KY2xhc3MgQW1kQnV0bGVySW50ZXJuYWxVcGRhdGUoX0VuYWJsZWQsIHN1YmxpbWVfcGx1Z2luLlRleHRDb21tYW5kKToNCiAgICBkZWYgcnVuKHNlbGYsIGVkaXQsIHBhaXJzKToNCiAgICAgICAgX3VwZGF0ZV93aXRoX3BhaXJzKHNlbGYudmlldywgZWRpdCwgcGFpcnMpDQoNCg0KY2xhc3MgQW1kQnV0bGVySW50ZXJuYWxBZGQoX0VuYWJsZWQsIHN1YmxpbWVfcGx1Z2luLlRleHRDb21tYW5kKToNCiAgICBkZWYgcnVuKHNlbGYsIGVkaXQsIHBhaXI9JycpOg0KICAgICAgICAjIGFkZCBwYXJhbSBmaXJzdA0KICAgICAgICB0cnk6DQogICAgICAgICAgICBwYXJhbXNfcG9pbnQgPSBidWZmZXJfcGFyc2VyLmdldF9wYXJhbXNfc3BhbigNCiAgICAgICAgICAgICAgICBfYWxsX3RleHQoc2VsZi52aWV3KSlbMF0NCiAgICAgICAgICAgIHNlbGYudmlldy5pbnNlcnQoZWRpdCwgcGFyYW1zX3BvaW50LCBwYWlyWzFdICsgJywnKQ0KDQogICAgICAgICAgICBpbXBvcnRzX3BvaW50ID0gYnVmZmVyX3BhcnNlci5nZXRfaW1wb3J0c19zcGFuKA0KICAgICAgICAgICAgICAgIF9hbGxfdGV4dChzZWxmLnZpZXcpKVswXQ0KICAgICAgICAgICAgc2VsZi52aWV3Lmluc2VydChlZGl0LCBpbXBvcnRzX3BvaW50LCAnXCd7fVwnLCcuZm9ybWF0KHBhaXJbMF0pKQ0KICAgICAgICBleGNlcHQgYnVmZmVyX3BhcnNlci5QYXJzZUVycm9yIGFzIGVyOg0KICAgICAgICAgICAgc3VibGltZS5lcnJvcl9tZXNzYWdlKGVyLm1lc3NhZ2UpDQoNCiAgICAgICAgc2VsZi52aWV3LnJ1bl9jb21tYW5kKCdhbWRfYnV0bGVyX3NvcnQnKQ0KDQoNCmNsYXNzIEFtZEJ1dGxlclJlZnJlc2goX0VuYWJsZWQsIHN1YmxpbWVfcGx1Z2luLlRleHRDb21tYW5kKToNCiAgICBkZWYgcnVuKHNlbGYsIGVkaXQpOg0KICAgICAgICBfc2V0X21vZHMoc2VsZi52aWV3KQ0K

Error while trying to invoke refresh module on an unsaved file

Change

def _validate_folder(view, folder_name):
path = os.path.join(view.file_name().split(folder_name)[0],folder_name)
if os.path.exists(path):
return path
else:
sublime.error_message('Could not find: {}!'.format(path))
return None

to

def _validate_folder(view, folder_name):
if(view.file_name() is None):
sublime.error_message('Cannot validate "'+folder_name+'". File is not saved!')
return None

path = os.path.join(view.file_name().split(folder_name)[0],folder_name)
if os.path.exists(path):
    return path
else:
    sublime.error_message('Could not find: {}!'.format(path))
    return None

UPDATE:

See issue #26

Path for searching for modules is badly built

Change to

def _validate_folder(view, folder_name):
#path = os.path.join(view.file_name().split(folder_name)[0],folder_name)
path = os.path.join(os.path.dirname(view.file_name()),folder_name)
if os.path.exists(path):
return path
else:
sublime.error_message('Could not find: {}!'.format(path))
return None

Consider in using absolute path instead is more intuitive:

def _validate_folder(view, folder_name):
path = folder_name
if os.path.exists(path):
return path
else:
sublime.error_message('Could not find: {}!'.format(path))
return None

In this case issue #25 disappeared.

empty add get's confused

i used amd butler to remove all the requires. it left me with

define([
], function (
) {

Then added a module and got

define([
    ''
    'esri/graphicsUtils',

    'graphicsUtils'
], function (
) {

Empty default settings

Hi, thanks for this plugin!

Not sure if this is an actual issue or not but is seems inconsistent with the other plugins and Sublime settings: on Windows 7 (not tested on another OS) accessing Preferences > Package Settings > AmdButler > Settings - Default shows an empty file instead of what would rather be some JSON listing the two currently supported default settings and their associated values.

Remove with wildcard

Sometimes you just want to remove a lot of cruft.

Can we allow remove to accept a globbing pattern or some sort of wild card syntax for removing multiple imports.

K thanks.

ImportError: No module named 'data' in Sublime

Hi,

I was installing your software through the sublime 3 package manager on windows 8.

and I was getting the following error:

ImportError: No module named 'data' in Sublime 

as it turns out in your crawler.py there was an error on the import:

from data.js_keywords import *

Doing the following change:

#from data.js_keywords import *
from . import data

And building the package was enough to make it load correctly.

UPDATE:

Ok I made it load correctly but I am getting an error on:

if name in JS_KEYWORDS:

It says JS_KEYWORDS does not exist :/

I think the problem is not the import but the fact sublime is looking for the module somewhere else.

Here is the stack trace:

Traceback (most recent call last):
File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 71, in reload_plugin
m = imp.reload(m)
File "./imp.py", line 276, in reload
File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 671, in load_module
exec(compile(source, source_path, 'exec'), mod.__dict__)
File "C:\Users\Rafael\AppData\Roaming\Sublime Text 3\Packages\AMD Butler\crawler.py", line 5, in <module>
from data import js_keywords

I have given up on trying to isolate the JS_KEYWORDS on a module and just copy pasted the content in to the crawler.py. That worked.

Hope it helps. And thank you for your work.

Sorting templates

Create some sort of templating system for allowing users to configure how imports are sorted.

Allow for overriding the values in the add list

examples:

  • esri/tasks/query, Query
  • esri/map, Map
  • esri/graphic, Graphic

Also, for adding modules that don't show up in the list.

Also, single word imports like stubmodule or jquery.

Also better list of reserved words like window and string.

Add multiple references

The quick pane allows you use the right arrow key to open multiple files. I wonder if we could use this same UX to allow you to add multiple amd imports with one command invocation.

Good talk.

Better way to define crawl path

Not a good solution to check into source control:
image

Maybe just store the name of the base folder that contains AMD packages? Then crawl could search the tree from the current file looking for the base folder.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.