Skip to content

Instantly share code, notes, and snippets.

@AlencarGabriel
Last active December 18, 2020 18:33
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save AlencarGabriel/d6f7c8c192886cb343f377c7ee9bfc74 to your computer and use it in GitHub Desktop.
Save AlencarGabriel/d6f7c8c192886cb343f377c7ee9bfc74 to your computer and use it in GitHub Desktop.
Code Map AdvPL
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
class mapper {
static read_all_lines(file) {
let text = fs.readFileSync(file, 'utf8');
return text.split(/\r?\n/g);
}
static generate(file) {
let members = [];
try {
let line_num = 0;
mapper
.read_all_lines(file)
.forEach(line => {
line_num++;
line = line.trim();
if (line.toLowerCase().startsWith("static function ") && line.toLowerCase().trim().endsWith("def()"))
members.push(`${line.substr(16).trim()}|${line_num}|interface`);
else if (line.toLowerCase().startsWith("static function "))
members.push(`${line.substr(16).trim()}|${line_num}|function`);
else if (line.toLowerCase().startsWith("user function "))
members.push(`U_${line.substr(14).trim()}|${line_num}|function`);
else if (line.toLowerCase().startsWith("function "))
members.push(`${line.substr(9).trim()}|${line_num}|level1`);
else if (line.toLocaleLowerCase().startsWith("wsmethod") &&
(line.toLocaleLowerCase().indexOf("wsreceive") > 0 || line.toLocaleLowerCase().indexOf("wsservice") > 0))
members.push(`${line.trim()}|${line_num}|function`);
else if (line.toLocaleLowerCase().startsWith("wsmethod") && line.toLocaleLowerCase().indexOf("description") > 0)
members.push(`${line.substr(0, line.toLocaleLowerCase().indexOf("description") - 1).trim()}|${line_num}|interface`);
else if (line.toLocaleLowerCase().startsWith("wsrestful"))
members.push(`${line.substr(0, line.toLocaleLowerCase().indexOf("description") - 1).trim()}|${line_num}|class`);
else if (line.toLocaleLowerCase().startsWith("class "))
members.push(`${line.substr(6).trim()}|${line_num}|class`);
else if (line.toLocaleLowerCase().startsWith("data "))
members.push(` ${line.substr(5).trim()}|${line_num}|property`);
else if (line.toLocaleLowerCase().startsWith("local ") && line.indexOf(":=") > 0)
members.push(` ${line.substr(6, line.indexOf(":=") - 6).trim()}|${line_num}|property`);
else if (line.toLocaleLowerCase().startsWith("local ") && line.indexOf(":=") <= 0)
members.push(` ${line.substr(6).trim()}|${line_num}|property`);
else if (line.toLocaleLowerCase().startsWith("private ") && line.indexOf(":=") > 0)
members.push(` ${line.substr(8, line.indexOf(":=") - 8).trim()}|${line_num}|property`);
else if (line.toLocaleLowerCase().startsWith("private ") && line.indexOf(":=") <= 0)
members.push(` ${line.substr(8).trim()}|${line_num}|property`);
else if (line.toLocaleLowerCase().startsWith("method ") && line.toLocaleLowerCase().indexOf("class") > 0) {
let classe = line.substr(line.toLocaleLowerCase().indexOf("class")+5);
let indexClasse = members.findIndex(arr => arr.trim().startsWith(classe.trim()));
members.splice(indexClasse+1, 0, ` ${line.substr(7).trim()}|${line_num}|function`);
}
});
}
catch (error) {
console.log(error);
}
return members;
}
}
exports.mapper = mapper;
"codemap.prw": "C:\\Users\\g_santana\\AppData\\Roaming\\Code\\User\\mapper_prw.js",
"codemap.prx": "C:\\Users\\g_santana\\AppData\\Roaming\\Code\\User\\mapper_prw.js",
"codemap.tlpp": "C:\\Users\\g_santana\\AppData\\Roaming\\Code\\User\\mapper_prw.js",
"codemap.textMode": false,
@AlencarGabriel
Copy link
Author

Adicionado .trim() para limpar os espaços em branco da declaração dos itens.

@AlencarGabriel
Copy link
Author

Adicionado configuração para nova extensão .tlpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment