Skip to content
This repository has been archived by the owner on May 25, 2019. It is now read-only.

ng-controller doesn't suggest my controller name #67

Open
gkatsanos opened this issue Sep 14, 2014 · 15 comments
Open

ng-controller doesn't suggest my controller name #67

gkatsanos opened this issue Sep 14, 2014 · 15 comments

Comments

@gkatsanos
Copy link

Hello.

I have autocomplete enabled, I index my project, but I only get as suggestions the controllers declared inside the angular core libraries, I don't get the one I just wrote:

screen shot 2014-09-14 at 23 17 38 2

websiteApp.controller('SpicyController', ['$scope', function($scope) {
    $scope.spice = 'very';

    $scope.chiliSpicy = function() {
        $scope.spice = 'chili';
    };

    $scope.jalapenoSpicy = function() {
        $scope.spice = 'jalapeño';
    };
}]);
@subhaze
Copy link
Contributor

subhaze commented Sep 14, 2014

This is due to how the files are parsed. To reduce false positives on matching directives/controllers/etc the plugin looks for angular/app/etc so if you're naming your app something other than "app" you'll need to update the regex in the settings file.

https://github.com/angular-ui/AngularJS-sublime-package#indexing-options

In your case you'd need to change app to websiteApp or rename websiteApp to just app

@subhaze subhaze closed this as completed Sep 14, 2014
@gkatsanos
Copy link
Author

Thanks. I added
"((^[ \t].{0}|^[ \t]{0}|angular.{0}|).{0}|app.{0})[ ]([ ]["'])([\w.$]*)(["'])"
and changed the match_expression_group to 4, but I still get the same results... (reindexed)
What's the regex to have fooApp ?
Could it have to do with my folder structure?

@subhaze
Copy link
Contributor

subhaze commented Sep 15, 2014

Didn't notice that in the screen shot. It's possible, I'll have to look into that.

@subhaze subhaze reopened this Sep 15, 2014
@gkatsanos
Copy link
Author

I'm actually not so sure I used the right regex, could you clarify?

@subhaze
Copy link
Contributor

subhaze commented Sep 15, 2014

@gkatsanos, yeah, looks like you missed updating the app part. Sorry was about to run out the door when I responded so didn't have time look over this thoroughly.

This:

// {0} is the location of where the definition name will be inserted
// ex: directive
"match_expression": "((^[ \\\\t]*\\.{0}|^[ \\\\t]*{0}|angular\\.{0}|\\)\\.{0}|app\\.{0})[ ]*\\([ ]*[\"\\'])([\\w\\.\\$]*)([\"\\'])",

"match_expression_group": 3

should be this:

// {0} is the location of where the definition name will be inserted
// ex: directive
"match_expression": "((^[ \\\\t]*\\.{0}|^[ \\\\t]*{0}|angular\\.{0}|\\)\\.{0}|(app|websiteApp)\\.{0})[ ]*\\([ ]*[\"\\'])([\\w\\.\\$]*)([\"\\'])",

"match_expression_group": 4

And you'll need to restart ST before doing the reindexing.

@gkatsanos
Copy link
Author

is there a way to use a wildcard of some type so that all *App names are picked-up?

@subhaze
Copy link
Contributor

subhaze commented Sep 15, 2014

Sure, if you'd like. It's converted down into a regex. So anything you can do via Regex in Python is doable there.

@gkatsanos
Copy link
Author

I can't really do Regexes :) Wouldn't it be helpful to make it by default catch all names that end on "app" ?

@subhaze
Copy link
Contributor

subhaze commented Sep 15, 2014

@gkatsanos sounds reasonable.

I've been considering always going with the second method and exposing an array that you can tweak so it's easier to change the behavior. This should be a pretty safe update so I'll try to hammer something out this week and push an update out.

@gkatsanos
Copy link
Author

Listen if you don't have time I can try to make a pull request myself, I have some time following weekend.

@subhaze
Copy link
Contributor

subhaze commented Sep 15, 2014

That'd be very welcomed. I'll still try and find some time this week, but if you can get to it'd be appreciated.

@charlesmudy
Copy link

Hi guys, any update on this?

@subhaze
Copy link
Contributor

subhaze commented Feb 17, 2015

I've been slammed with work, per usual, but the adjustments to the config shown above should allow you to make any tweaks needed until updated to be more user friendly. I can't say when, but I'm really wanting to get a day or two set aside to fix reported issues, and produce a new release...

subhaze added a commit that referenced this issue Feb 17, 2015
@tej-rana
Copy link

I can't get this to work.

Here's my app definition
angular.module('BookStoreApp', ['ionic', 'BookStoreApp.controllers', 'BookStoreApp.factory'])

and here's my user settings

{

// {0} is the location of where the definition name will be inserted
// ex: directive
"match_expression": "((^[ \t].{0}|^[ \t]{0}|angular.{0}|).{0}|BookStoreApp.{0})[ ]([ ]["'])([\w.$]*)(["'])",

// what group to expect the name in
// ex: module('myApp')
// myApp is currently in group 3 of the current 'match_expression'
"match_expression_group": 4,


"match_definitions": ["controller", "directive", "module", "factory", "filter"],

//indexing your project should get you more updated completions
"enable_AngularUI_directives": true

}

When I type

The status message says no available completion.

1 similar comment
@tej-rana
Copy link

I can't get this to work.

Here's my app definition
angular.module('BookStoreApp', ['ionic', 'BookStoreApp.controllers', 'BookStoreApp.factory'])

and here's my user settings

{

// {0} is the location of where the definition name will be inserted
// ex: directive
"match_expression": "((^[ \t].{0}|^[ \t]{0}|angular.{0}|).{0}|BookStoreApp.{0})[ ]([ ]["'])([\w.$]*)(["'])",

// what group to expect the name in
// ex: module('myApp')
// myApp is currently in group 3 of the current 'match_expression'
"match_expression_group": 4,


"match_definitions": ["controller", "directive", "module", "factory", "filter"],

//indexing your project should get you more updated completions
"enable_AngularUI_directives": true

}

When I type

The status message says no available completion.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants