Skip to content
This repository has been archived by the owner on Mar 26, 2020. It is now read-only.

Commit

Permalink
Compatibility with Komodo 6 toolbox -- not as flexible as the old ver…
Browse files Browse the repository at this point in the history
…sion, no option to have ":" in the snippet name and no support for folders.
  • Loading branch information
StanAngeloff committed Jun 21, 2010
1 parent 008c33d commit bd07c04
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 61 deletions.
2 changes: 1 addition & 1 deletion .gitignore
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
*.kpf
*.komodoproject
*.pyo
127 changes: 67 additions & 60 deletions src/content/scripts/command/abbreviation/toolbox.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,66 +37,73 @@ $self.provider = function() {
if (viewLanguages.indexOf('General') < 0)
viewLanguages.push('General');

var partService = Cc['@activestate.com/koPartService;1'].getService(Ci.koIPartService),
abbreviationsFolders = partService.getParts('folder', 'name', 'Abbreviations', '*', partService.currentProject, {}),
abbreviationName = abbreviation.split('.').shift(),
languageContainers, languageSnippetsContainer, languageSnippets;

for (var i = 0; i < abbreviationsFolders.length; i ++)
for (var j = 0; j < viewLanguages.length; j ++) {

// Find all sub-folders at top level
languageContainers = {};
abbreviationsFolders[i].getChildrenByType('folder', false, languageContainers, {});
if (languageContainers.value) {

languageContainers = languageContainers.value;

// Match the view language against the name of each folder
languageSnippetsContainer = null;
for (var k = 0; k < languageContainers.length; k ++)
if (viewLanguages[j].toLowerCase() === languageContainers[k].name.toLowerCase()) {

languageSnippetsContainer = languageContainers[k];
break;
}

// If we have found a folder matching our view language, look for a snippet inside
if (languageSnippetsContainer) {

languageSnippets = {};
// Find all snippets (incl. nested folders) inside the view language folder
languageSnippetsContainer.getChildrenByType('snippet', true, languageSnippets, {});
if (languageSnippets.value) {

languageSnippets = languageSnippets.value;
for (k = 0; k < languageSnippets.length; k ++) {

// Attempt a full-name match
if (languageSnippets[k].name == abbreviationName)
return languageSnippets[k];
// Attempt to match first word-part of the snippet name
else if (languageSnippets[k].name.split(/[\W\.]+/).shift() == abbreviationName)
return languageSnippets[k];
}
}

languageSnippets = {};
// Find all folders (incl. nested folders) inside the view language folder
languageSnippetsContainer.getChildrenByType('folder', true, languageSnippets, {});
if (languageSnippets.value) {

languageSnippets = languageSnippets.value;
for (k = 0; k < languageSnippets.length; k ++) {

// Attempt a full-name match
if (languageSnippets[k].name == abbreviationName)
return languageSnippets[k];
}
}
}
}
}
if (typeof (ko.toolbox2) === 'undefined') {

var partService = Cc['@activestate.com/koPartService;1'].getService(Ci.koIPartService),
abbreviationsFolders = partService.getParts('folder', 'name', 'Abbreviations', '*', partService.currentProject, {}),
abbreviationName = abbreviation.split('.').shift(),
languageContainers, languageSnippetsContainer, languageSnippets;

for (var i = 0; i < abbreviationsFolders.length; i ++)
for (var j = 0; j < viewLanguages.length; j ++) {

// Find all sub-folders at top level
languageContainers = {};
abbreviationsFolders[i].getChildrenByType('folder', false, languageContainers, {});
if (languageContainers.value) {

languageContainers = languageContainers.value;

// Match the view language against the name of each folder
languageSnippetsContainer = null;
for (var k = 0; k < languageContainers.length; k ++)
if (viewLanguages[j].toLowerCase() === languageContainers[k].name.toLowerCase()) {

languageSnippetsContainer = languageContainers[k];
break;
}

// If we have found a folder matching our view language, look for a snippet inside
if (languageSnippetsContainer) {

languageSnippets = {};
// Find all snippets (incl. nested folders) inside the view language folder
languageSnippetsContainer.getChildrenByType('snippet', true, languageSnippets, {});
if (languageSnippets.value) {

languageSnippets = languageSnippets.value;
for (k = 0; k < languageSnippets.length; k ++) {

// Attempt a full-name match
if (languageSnippets[k].name == abbreviationName)
return languageSnippets[k];
// Attempt to match first word-part of the snippet name
else if (languageSnippets[k].name.split(/[\W\.]+/).shift() == abbreviationName)
return languageSnippets[k];
}
}

languageSnippets = {};
// Find all folders (incl. nested folders) inside the view language folder
languageSnippetsContainer.getChildrenByType('folder', true, languageSnippets, {});
if (languageSnippets.value) {

languageSnippets = languageSnippets.value;
for (k = 0; k < languageSnippets.length; k ++) {

// Attempt a full-name match
if (languageSnippets[k].name == abbreviationName)
return languageSnippets[k];
}
}
}
}
}

} else {

return ko.toolbox2.getAbbreviationSnippet(abbreviation, viewLanguages);
}

return null;
};
Expand Down

0 comments on commit bd07c04

Please sign in to comment.