+
+ Array<int> GetHighlightLines()
+ {
+ Array<int> lines { };
+ Map<int, bool> map { };
+ MapNode<int, bool> mn;
+ Debugger debugger = ide.debugger;
+ map[editBox.lineNumber + 1] = true;
+ if(editBox.syntaxHighlighting && fileName && ide.projectView)
+ {
+ bool error, breakpointEnabled[128];
+ int count, lineCursor, lineTopFrame, breakpointLines[128];
+ count = debugger.GetMarginIconsLineNumbers(fileName, breakpointLines, breakpointEnabled, 128, &error, &lineCursor, &lineTopFrame);
+ if(error)
+ map[error] = true;
+ if(lineCursor)
+ map[lineCursor] = true;
+ if(lineTopFrame)
+ map[lineTopFrame] = true;
+ if(count)
+ {
+ int i;
+ for(i = 0; i < count; i++)
+ map[breakpointLines[i]] = true;
+ }
+ }
+ for(mn = map.root.minimum; mn; mn = mn.next)
+ lines.Add(mn.key);
+ delete map;
+ return lines;
+ }