diff --git a/Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-EN.js b/Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-EN.js new file mode 100644 index 0000000000000000000000000000000000000000..7bf015b380048b83c878b197b18d47e0c5931b4b --- /dev/null +++ b/Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-EN.js @@ -0,0 +1,258 @@ +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("codemirror/lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["codemirror/lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineMode("matefun-EN", function(_config, modeConfig) { + + function switchState(source, setState, f) { + setState(f); + return f(source, setState); + } + + var smallRE = /[a-z_]/; + var largeRE = /[A-Z]/; + var digitRE = /\d/; + var hexitRE = /[0-9A-Fa-f]/; + var octitRE = /[0-7]/; + var idRE = /[a-z_A-Z0-9'\xa1-\uffff]/; + var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/; + var specialRE = /[(),;[\]`{}]/; + var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer + + function normal(source, setState) { + if (source.eatWhile(whiteCharRE)) { + return null; + } + + var ch = source.next(); + if (specialRE.test(ch)) { + if (ch == '{' && source.eat('-')) { + var t = "comment"; + if (source.eat('#')) { + t = "meta"; + } + return switchState(source, setState, ncomment(t, 1)); + } + return null; + } + + if (ch == '\'') { + if (source.eat('\\')) { + source.next(); // should handle other escapes here + } + else { + source.next(); + } + if (source.eat('\'')) { + return "string"; + } + return "string error"; + } + + if (ch == '"') { + return switchState(source, setState, stringLiteral); + } + + if (largeRE.test(ch)) { + source.eatWhile(idRE); + if (source.eat('.')) { + return "qualifier"; + } + return "variable-2"; + } + + if (smallRE.test(ch)) { + source.eatWhile(idRE); + return "variable"; + } + + if (digitRE.test(ch)) { + if (ch == '0') { + if (source.eat(/[xX]/)) { + source.eatWhile(hexitRE); // should require at least 1 + return "integer"; + } + if (source.eat(/[oO]/)) { + source.eatWhile(octitRE); // should require at least 1 + return "number"; + } + } + source.eatWhile(digitRE); + var t = "number"; + if (source.match(/^\.\d+/)) { + t = "number"; + } + if (source.eat(/[eE]/)) { + t = "number"; + source.eat(/[-+]/); + source.eatWhile(digitRE); // should require at least 1 + } + return t; + } + + if (ch == "." && source.eat(".")) + return "keyword"; + + if (symbolRE.test(ch)) { + if (ch == '-' && source.eat(/-/)) { + source.eatWhile(/-/); + if (!source.eat(symbolRE)) { + source.skipToEnd(); + return "comment"; + } + } + var t = "variable"; + if (ch == ':') { + t = "variable-2"; + } + source.eatWhile(symbolRE); + return t; + } + + return "error"; + } + + function ncomment(type, nest) { + if (nest == 0) { + return normal; + } + return function(source, setState) { + var currNest = nest; + while (!source.eol()) { + var ch = source.next(); + if (ch == '{' && source.eat('-')) { + ++currNest; + } + else if (ch == '-' && source.eat('}')) { + --currNest; + if (currNest == 0) { + setState(normal); + return type; + } + } + } + setState(ncomment(type, currNest)); + return type; + }; + } + + function stringLiteral(source, setState) { + while (!source.eol()) { + var ch = source.next(); + if (ch == '"') { + setState(normal); + return "string"; + } + if (ch == '\\') { + if (source.eol() || source.eat(whiteCharRE)) { + setState(stringGap); + return "string"; + } + if (source.eat('&')) { + } + else { + source.next(); // should handle other escapes here + } + } + } + setState(normal); + return "string error"; + } + + function stringGap(source, setState) { + if (source.eat('\\')) { + return switchState(source, setState, stringLiteral); + } + source.next(); + setState(normal); + return "error"; + } + + + var wellKnownWords = (function() { + var wkw = {}; + function setType(t) { + return function () { + for (var i = 0; i < arguments.length; i++) + wkw[arguments[i]] = t; + }; + } + + setType("keyword")( + "include" + ,"set","in" + ,"if", "or" + ,"isEmpty"); + + setType("keyword")("<-", "->"); + + setType("builtin")("-", "+", "*", "/","^","!",":","==","/=","<",">","<=",">=","::","->","X","|"); + + //tipos predefinidos + setType("builtin")("Red", "Green", "Blue", "Black","White","Gray","Yellow","FigEmpty", "[]" + ,"R", "Fig", "Fig3D", "Color", "color3D", "join3D", "rotate3D", "move3D" + ); + + setType("builtin")( + "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf", + "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling", + "compare", "concat", "concatMap", "const", "cos", "cosh", "curry", + "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either", + "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo", + "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter", + "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap", + "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger", + "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents", + "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized", + "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last", + "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map", + "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound", + "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or", + "otherwise", "pi", "pred", "print", "product", "properFraction", + "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile", + "readIO", "readList", "readLn", "readParen", "reads", "readsPrec", + "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse", + "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq", + "sequence", "sequence_", "show", "showChar", "showList", "showParen", + "showString", "shows", "showsPrec", "significand", "signum", "sin", + "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum", + "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger", + "toRational", "truncate", "uncurry", "undefined", "unlines", "until", + "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip", + "zip3", "zipWith", "zipWith3"); + + var override = modeConfig.overrideKeywords; + if (override) for (var word in override) if (override.hasOwnProperty(word)) + wkw[word] = override[word]; + + return wkw; + })(); + + + + return { + startState: function () { return { f: normal }; }, + copyState: function (s) { return { f: s.f }; }, + + token: function(stream, state) { + var t = state.f(stream, function(s) { state.f = s; }); + var w = stream.current(); + return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t; + }, + + blockCommentStart: "{-", + blockCommentEnd: "-}", + lineComment: "--" + }; + +}); + +CodeMirror.defineMIME("text/x-matefun", "matefun-EN"); + +}); \ No newline at end of file diff --git a/Frontend Angular 4/src/app/layout/matefun/codemirror-matefun-mode.js b/Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-ES.js similarity index 98% rename from Frontend Angular 4/src/app/layout/matefun/codemirror-matefun-mode.js rename to Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-ES.js index 04de0e3657f5f1974083586be914cdcacbd91f82..72c0d89e0c93de1b29bda44673535033def1987e 100644 --- a/Frontend Angular 4/src/app/layout/matefun/codemirror-matefun-mode.js +++ b/Frontend Angular 4/src/app/layout/matefun/codemirror/matefun-mode-ES.js @@ -8,7 +8,7 @@ })(function(CodeMirror) { "use strict"; - CodeMirror.defineMode("matefun", function(_config, modeConfig) { + CodeMirror.defineMode("matefun-ES", function(_config, modeConfig) { function switchState(source, setState, f) { setState(f); @@ -256,6 +256,6 @@ }); -CodeMirror.defineMIME("text/x-matefun", "matefun"); +CodeMirror.defineMIME("text/x-matefun", "matefun-ES"); }); \ No newline at end of file diff --git a/Frontend Angular 4/src/app/layout/matefun/matefun.component.ts b/Frontend Angular 4/src/app/layout/matefun/matefun.component.ts index 7a45f4c2148ad1cc4947af688bd6dfe1539b86ba..8facd847a65a37f9967c33b2ae798d695d145f28 100644 --- a/Frontend Angular 4/src/app/layout/matefun/matefun.component.ts +++ b/Frontend Angular 4/src/app/layout/matefun/matefun.component.ts @@ -38,7 +38,8 @@ import 'codemirror/addon/search/matchesonscrollbar'; import 'codemirror/addon/search/jump-to-line'; import 'codemirror/addon/edit/matchbrackets'; -import './codemirror-matefun-mode.js' +import './codemirror/matefun-mode-ES.js' +import './codemirror/matefun-mode-EN.js' var codeMirrorRef:any; var componentRef : any; @@ -78,7 +79,7 @@ export class MateFunComponent { matchBrackets: true, extraKeys: {"Ctrl-Space": "autocomplete"}, mode: { - name: "matefun", + name: "matefun-EN", globalVars: true }, gutters: ["CodeMirror-linenumbers", "breakpoints"], diff --git a/Frontend Angular 4/src/app/layout/plotter/graph3D/graph3D.component.ts b/Frontend Angular 4/src/app/layout/plotter/graph3D/graph3D.component.ts index 36c1c56ee1f76315b7802396f40df31e9b516bad..f4713fcba3a9a2059f71c0b40a67e376a52e6389 100644 --- a/Frontend Angular 4/src/app/layout/plotter/graph3D/graph3D.component.ts +++ b/Frontend Angular 4/src/app/layout/plotter/graph3D/graph3D.component.ts @@ -2,7 +2,6 @@ import { Component, OnInit, ViewChild, ElementRef, NgZone } from '@angular/core' import * as graph3DLib from 'graph3d'; import { GHCIService } from '../../../shared/services/ghci.service'; import { formatJSON, AnimationProps, Zoom3DType, GraphProps, Default_GraphProps, debounce } from './graph3D.helper'; -import { debounceTime, distinctUntilChanged } from 'rxjs/operators' @Component({ selector: 'graph3d-component', @@ -12,7 +11,7 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators' '(window:resize)': 'onResize($event)' } }) -export class Graph3DComponent implements OnInit { +export class Graph3DComponent { private ghciServiceSub: any; @@ -55,7 +54,7 @@ export class Graph3DComponent implements OnInit { ) } - ngOnInit() { + ngAfterViewInit() { // this.zone.runOutsideAngular(() => { graph3DLib.initialize(this.graph3DRef.nativeElement); //}) @@ -135,7 +134,7 @@ export class Graph3DComponent implements OnInit { public onChangeQuality = () => { const value = this.graphProps.quality; - + if (value == null || value <= 1) { this.graphProps.quality = 30; } diff --git a/Frontend Angular 4/src/app/shared/config.ts b/Frontend Angular 4/src/app/shared/config.ts index 1100f6f7e8b0d37b37f43980bbe42d83b1f14c25..5d780733ae694c593411c7e56aa659a662b802c6 100644 --- a/Frontend Angular 4/src/app/shared/config.ts +++ b/Frontend Angular 4/src/app/shared/config.ts @@ -9,5 +9,9 @@ // export const SERVER = window.location.protocol + '//' + window.location.host;//'http://localhost:9090'; // export const GHCI_URL = window.location.protocol == 'http:'? 'ws://'+window.location.host+'/endpoint': 'wss://'+window.location.host+'/endpoint'; -export const SERVER = 'http://192.168.95.3:9090'; -export const GHCI_URL = 'ws://192.168.95.3:9090/endpoint'; +//export const SERVER = 'http://192.168.95.3:9090'; +//export const GHCI_URL = 'ws://192.168.95.3:9090/endpoint'; + +export const SERVER = 'http://35.199.110.129:9090'; +export const GHCI_URL = 'ws://35.199.110.129:9090/endpoint'; +