Plugin de minimap pour Geany
Hex edit pour l'édition de fichier en hexa dans geany, pas aussi intuitif que je l'aurai voulu mais ça fonctionne et ça dépanne.
Activer luaScript && créer le dossier .config/geany/plugins/geanylua && ajouter le script qui vabien.
Après dans Outils > Scripts Lua > HexEdit permet de choisir un fichier à ouvrir
Quand un fichier distant monté en ssh est ouvert, l'ajout de se script dans les commandes de construction permet d'amener le terminal intégré à geany dans le dossier distant (le mot de passe sera demandé !)
Dans les commandes de construction :
geany_ssh.sh %d
Le script :
!bin/bash
echo "$1";
if [[ $1 =~ sftp:host=([^,]) ]] && ip=${BASH_REMATCH[1]}; then
if [[ $1 =~ user=([^/]) ]] && user=${BASH_REMATCH[1]}; then
if [[ $1 =~ user=[^/](.) ]] && dir=${BASH_REMATCH[1]}; then
ssh $user@$ip -t "cd $dir; bash --login"
else
ssh $user@$ip
fi
fi
fi
Ajouter les options de tri et tri unique par exemple dans Geany :
Editer > Format > Envoyer la sélection vers > Définir les commandes personnalisées
sort
sort -u
Pour ajouter une action contextuelle, qui ouvrirait la documentation en fonction du terme recherché. à creuser ...
le format CHM par exemple
HTML / JS / PHP avec action contextuelle
Csslint à mettre en place dans geany
Une bonne idée de commande à ajouter à geany pour le debug un tail sur error_log + utilisation de la fonction error_log(), évite d'afficher des var_dump et compagnie
Formatage de la sortie et gestion d'un fichier de config (au format commentaire /jslint white: true,plusplus: true//global $, require/
A ajouter au début du source de jslint.js.
puis nodejs jslint.js fileToTest.js [--config configFile]
var inFile = process.argv[2],
util = require("util"),
fs = require("fs"),
cfgContent = "",
i;
for (i = 0; i < process.argv.length; i++) {
if (process.argv[ i ] == '--config') {
i++;
if (process.argv[ i ]) {
fs.readFile(process.argv[ i ], function (err, cfg) {
if ( ! err) {
cfgContent = cfg.toString().replace(/(\r\n|\n|\r)/gm, "");
}
else {
util.log("Config File not found!");
}
});
}
}
}
fs.readFile(inFile, function (err, lintable) {
if ( ! err) {
if (JSLINT(cfgContent + lintable.toString())) {
util.puts("Nothing untoward");
} else {
reformat(JSLINT.data());
}
}
else {
util.log("File not found!");
}
});
function reformat(results) {
if (results.errors.length == 0) {
util.log('No error');
process.exit(0);
}
else {
for (i = 0; i < results.errors.length; i++) {
if (results.errors[ i ] && results.errors[ i ].line && results.errors[ i ].reason) {
util.puts(results.errors[i].evidence);
util.puts(inFile + ':' + results.errors[ i ].line + ':' + results.errors[ i ].reason);
}
}
process.exit(1);
}
}
Le comble ce code n'est pas exempt d'erreur selon JSLint !! :(