List, Useful, Uitgebreide uitleg Developer pallet
Selecteer een stuk code en zet het in commentaar of haal deze commentaar weg.
Ctrl+/
Als deze niet zichtbaar worden tijdens het typen (autocomplete) door een fout of na edit in een functie.
Ctrl + Space
Verplaats een blok code omhoog of omlaag door de lijnen te selecteren en dan:
Alt + arrow keys
Selecteer de code en druk op TAB of SHIFT+TAB
1.1.5.1 Format
Hiermee kan je de meeste stukken code auto-formateren
1.1.5.2 Rename Symbol
Laat je alle symbolen in deze file vervangen door een nieuwe symboi naam.
Let op, dit is enkel in deze file, niet in alle files in je project!
1.1.5.3 Go to
Laat je toe om snel te navigeren naar het gezochte als je de variabele, functie etc ziet en selecteert
Het gebruik van JSdoc notatie voor je functie omschrijving geeft de mogelijkheid om voor je eigen functies een “autocomplete” te maken.
@params
@returns
@callback
@type
@typedef
@name zie voor meer uitleg NamespaceLib
Zijn maar enkele van de mogelijkheden die best gebruikt worden.
Het gebruik van strikte scheiding van namespaces in grotere projecten moet je behoeden van de standaard problemen rond dubbel gedefinieerde globale vars in verschillende files.
Het namespace probleem kan je oplossen door voor je scripts zelf de nodige discipline te gebruiken en een eigen namespace te definiëren.
Hoe je dit doet, vind je terug in het volgende document: Namespaces
Creëer een script file Foo waarvoor je zijn eigen namespace definieert
var Foo = (function() {
'use strict';
// this is namespace object
var foo = {};
return foo;
})();
Defineer var. Functies en properties die je normaal globaal zou definiëren aan deze definitie.
var Foo = (function() {
'use strict';
// this is namespace object
var foo = {};
// set a local property
foo.name = 'foo';
// a function in this namespace
foo.showName = function () {
Logger.log('namespace ' + foo.name);
};
return foo;
})();
Voeg eventueel classes toe aan deze namespace
var Foo = (function() {
'use strict';
// this is namespace object
var foo = {};
// set a local property
foo.name = 'foo';
// a function in this namespace
foo.showName = function () {
Logger.log('namespace ' + foo.name);
};
// a pseudo class in this name space
foo.speak = function (name) {
// self will refer to this instance
var self = this;
// a local param
var name_ = name;
// a method
self.sayHello = function (message) {
Logger.log('hello from ' +name_ + ' ' + message);
};
// another method
self.sayGoodbye = function (message) {
Logger.log('bye from ' +name_ + ' ' + message);
};
}
return foo;
})();
Je kan deze functies nu gebruiken alsof het library functies zijn in je eigen project.
function test() {
// access a local function in the namespace
Foo.showName();
// a couple of instances
var tom = new Foo.speak ('tom');
var jerry = new Foo.speak ('jerry');
tom.sayHello("cat");
jerry.sayHello("mouse");
tom.sayGoodbye("cat");
jerry.sayGoodbye("mouse");
}
Hierdoor is er geen verschil met lib functies en loop je niet het risico als je code kopieert dat die gebruik maakt van globale vars die ook elders in je project zitten.
Zo kunnen je functies ook nadien eenvoudig als lib ter beschikking gesteld worden.
Je kan functies verstoppen van het kunnen starten via het run menu. Dit zorgt ervoor dat je “helper functies” niet toevallig kan runnen.
Hiervoor voeg je een _ toe aan het einde van de functienaam.
function notVisibleInRunMenu_(){};
Video Become a Google Apps Script developer