38 { std::make_unique<CodeEditorComponentTextInterface> (codeEditorComponentToWrap) })
132 localRects.
add (startPos.x,
134 jmax (1, endPos.x - startPos.x),
140 for (
auto r : localRects)
174 if (tokeniser ==
nullptr)
176 auto line = codeDoc.
getLine (lineNum);
177 addToken (newTokens, line, line.length(), -1);
183 source, *tokeniser, newTokens);
188 int newHighlightStart = 0;
189 int newHighlightEnd = 0;
193 auto line = codeDoc.
getLine (lineNum);
207 else if (
tokens == newTokens)
212 tokens.swapWith (newTokens);
224 const float rightClip,
const float x,
const int y,
225 const int lineH,
const float characterWidth)
const
232 for (
auto& token :
tokens)
234 const float tokenX =
x + (float)
column * characterWidth;
235 if (tokenX > rightClip)
242 as.
draw (
g, {
x, (float)
y, (
float)
column * characterWidth + 10.0f, (float) lineH });
256 &&
text == other.text;
273 const int lineLength = lineText.
length();
281 if (tokenEnd <= tokenStart)
284 tokenEnd -= startPosition;
288 tokenStart -= startPosition;
291 tokenEnd -
start, tokenType);
293 if (tokenEnd >= lineLength)
297 lastIterator = source;
300 source = lastIterator;
311 const int tabPos =
t.text.indexOfChar (
'\t');
317 t.length =
t.text.length();
326 jassert (index <= line.length());
328 auto t = line.getCharPointer();
331 for (
int i = 0;
i < index; ++
i)
333 if (
t.getAndAdvance() !=
'\t')
336 col += tabSpaces - (col % tabSpaces);
364 while (!
t.isEmpty())
366 if (!
t.isWhitespace())
395 owner.scrollToLineInternal ((
int) newRangeStart);
397 owner.scrollToColumnInternal (newRangeStart);
402 owner.codeDocumentChanged (pos, pos + newText.
length());
427 auto clip =
g.getClipBounds();
428 const int lineH = editor.lineHeight;
429 const float lineHeightFloat = (float) lineH;
430 const int firstLineToDraw =
jmax (0, clip.getY() / lineH);
431 const int lastLineToDraw =
jmin (editor.lines.size(), clip.getBottom() / lineH + 1,
434 auto lineNumberFont = editor.getFont().withHeight (
jmin (13.0f, lineHeightFloat * 0.8f));
438 for (
int i = firstLineToDraw;
i < lastLineToDraw; ++
i)
440 0, (
float) (lineH *
i),
w, lineHeightFloat,
474 caretPos.setPositionMaintained (
true);
517 document.replaceAllContent (newContent);
538 if (
caret !=
nullptr)
605 g.reduceClipRegion (gutterSize, 0,
right - gutterSize, bottom);
609 auto clip =
g.getClipBounds();
613 auto rightClip = (float) clip.getRight();
618 for (
int i = firstLineToDraw;
i < lastLineToDraw; ++
i)
622 g.fillRectList (highlightArea);
625 for (
int i = firstLineToDraw;
i < lastLineToDraw; ++
i)
640 pimpl->triggerAsyncUpdate();
645 pimpl->cancelPendingUpdate();
648 auto minLineToRepaint = numNeeded;
649 int maxLineToRepaint = 0;
651 if (numNeeded !=
lines.size())
655 for (
int i = numNeeded; --
i >= 0;)
658 minLineToRepaint = 0;
659 maxLineToRepaint = numNeeded;
667 for (
int i = 0;
i < numNeeded; ++
i)
672 minLineToRepaint =
jmin (minLineToRepaint,
i);
673 maxLineToRepaint =
jmax (maxLineToRepaint,
i);
677 if (minLineToRepaint <= maxLineToRepaint)
720 if (
caret !=
nullptr)
739 auto oldCaretPos =
caretPos.getPosition();
740 auto isStart = std::abs (oldCaretPos -
selectionStart.getPosition())
811 newFirstLineOnScreen);
820 pimpl->handleUpdateNowIfNeeded();
867 auto caretLine =
caretPos.getLineNumber();
950 if (currentColumn <= 0 || (currentColumn %
spacesPerTab) == 0)
958 if (selected.isNotEmpty() && selected.trim().isEmpty())
978 oldSelectionStart.setPositionMaintained (
true);
979 oldSelectionEnd.setPositionMaintained (
true);
985 if (lineEnd > lineStart &&
selectionEnd.getIndexInLine() == 0)
988 for (
int line = lineStart; line <= lineEnd; ++line)
990 auto lineText =
document.getLine (line);
993 if (nonWhitespaceStart > 0 || lineText.trimStart().isNotEmpty())
999 const int newNumLeadingSpaces =
jmax (0, numLeadingSpaces + spacesToAdd);
1001 if (newNumLeadingSpaces != numLeadingSpaces)
1003 document.deleteSection (wsStart, wsEnd);
1031 if (selection.isNotEmpty())
1050 if (clip.isNotEmpty())
1073 if (moveInWholeWordSteps)
1097 if (moveInWholeWordSteps)
1206 std::numeric_limits<int>::max()), selecting);
1214 std::numeric_limits<int>::max()), selecting);
1220 if (moveInWholeWordSteps)
1236 auto currentLineText =
caretPos.getLineText().removeCharacters (
"\r\n");
1237 auto currentIndex =
caretPos.getIndexInLine();
1239 if (currentLineText.isNotEmpty() && currentLineText.length() == currentIndex)
1241 const int currentLine =
caretPos.getLineNumber();
1242 const int currentColumn =
indexToColumn (currentLine, currentIndex);
1243 const int previousTabColumn = (currentColumn - 1) - ((currentColumn - 1) %
spacesPerTab);
1244 const int previousTabIndex =
columnToIndex (currentLine, previousTabColumn);
1246 if (currentLineText.substring (previousTabIndex, currentIndex).trim().isEmpty())
1258 if (moveInWholeWordSteps)
1279 std::numeric_limits<int>::max()),
1317 pimpl->startTimer (600);
1366 pimpl->handleUpdateNowIfNeeded();
1419 result.setInfo (
TRANS (
"Cut"),
TRANS (
"Copies the currently selected text to the clipboard and deletes it."),
"Editing", 0);
1425 result.setInfo (
TRANS (
"Copy"),
TRANS (
"Copies the currently selected text to the clipboard."),
"Editing", 0);
1426 result.setActive (anythingSelected);
1431 result.setInfo (
TRANS (
"Paste"),
TRANS (
"Inserts text from the clipboard."),
"Editing", 0);
1437 result.setInfo (
TRANS (
"Delete"),
TRANS (
"Deletes any selected text."),
"Editing", 0);
1442 result.setInfo (
TRANS (
"Select All"),
TRANS (
"Selects all the text in the editor."),
"Editing", 0);
1485 default:
return false;
1526 if (editor !=
nullptr && menuResult != 0)
1536 if (
e.mods.isPopupMenu())
1545 if (
start.getPosition() <
end.getPosition())
1565 if (!
e.mods.isPopupMenu())
1582 if (
e.getNumberOfClicks() > 2)
1583 document.findLineContaining (tokenStart, tokenStart, tokenEnd);
1585 document.findTokenContaining (tokenStart, tokenStart, tokenEnd);
1639 auto line =
document.getLine (lineNum);
1640 auto t = line.getCharPointer();
1643 for (
int i = 0;
i < index; ++
i)
1651 if (
t.getAndAdvance() !=
'\t')
1662 auto line =
document.getLine (lineNum);
1663 auto t = line.getCharPointer();
1666 while (!
t.isEmpty())
1668 if (
t.getAndAdvance() !=
'\t')
1693 for (
auto& tt :
types)
1695 if (tt.name ==
name)
1733 const int maxNumCachedPositions = 5000;
1734 const int linesBetweenCachedSources =
jmax (10,
document.getNumLines() / maxNumCachedPositions);
1745 if (last.getLine() >= maxLineNum)
1750 const int targetLine =
jmin (maxLineNum, last.getLine() + linesBetweenCachedSources);
1756 if (
t.getLine() >= targetLine)
1774 if (
t.getPosition() <= position)
1841 return std::make_unique<CodeEditorAccessibilityHandler> (*
this);
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
Type jmax(const Type a, const Type b)
Definition MathsFunctions.h:48
#define noexcept
Definition DistrhoDefines.h:72
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
static StringArray fromTokens(StringRef stringToTokenise, bool preserveQuotedStrings)
Definition StringArray.cpp:369
static String repeatedString(StringRef stringToRepeat, int numberOfTimesToRepeat)
Definition String.cpp:1028
AccessibilityHandler(Component &componentToWrap, AccessibilityRole accessibilityRole, AccessibilityActions actions={}, Interfaces interfaces={})
Definition juce_AccessibilityHandler.cpp:55
Definition juce_AccessibilityTextInterface.h:39
Definition juce_ApplicationCommandManager.h:88
ApplicationCommandTarget()
Definition juce_ApplicationCommandTarget.cpp:51
ApplicationCommandTarget * findFirstTargetParentComponent()
Definition juce_ApplicationCommandTarget.cpp:77
Definition juce_Array.h:56
void ensureStorageAllocated(int minNumElements)
Definition juce_Array.h:1065
void addArray(const Type *elementsToAdd, int numElementsToAdd)
Definition juce_Array.h:583
void add(const ElementType &newElement)
Definition juce_Array.h:418
AsyncUpdater()
Definition juce_AsyncUpdater.cpp:44
Definition juce_AttributedString.h:47
void draw(Graphics &g, const Rectangle< float > &area) const
Definition juce_AttributedString.cpp:267
void append(const String &textToAppend)
Definition juce_AttributedString.cpp:175
void setJustification(Justification newJustification) noexcept
Definition juce_AttributedString.cpp:223
static bool isWhitespace(char character) noexcept
Definition juce_CharacterFunctions.cpp:59
Definition juce_CodeDocument.h:360
bool isEOF() const noexcept
Definition juce_CodeDocument.cpp:293
int getPosition() const noexcept
Definition juce_CodeDocument.h:397
Definition juce_CodeDocument.h:328
Definition juce_CodeDocument.h:63
int getIndexInLine() const noexcept
Definition juce_CodeDocument.h:144
int getPosition() const noexcept
Definition juce_CodeDocument.h:120
int getLineNumber() const noexcept
Definition juce_CodeDocument.h:136
void setLineAndIndex(int newLineNumber, int newIndexInLine)
Definition juce_CodeDocument.cpp:399
void setPositionMaintained(bool isMaintained)
Definition juce_CodeDocument.cpp:532
Position movedBy(int characterDelta) const
Definition juce_CodeDocument.cpp:502
String getLineText() const
Definition juce_CodeDocument.cpp:524
Definition juce_CodeDocument.h:46
String getLine(int lineIndex) const noexcept
Definition juce_CodeDocument.cpp:623
int getNumLines() const noexcept
Definition juce_CodeDocument.h:204
CodeEditorComponent & codeEditorComponent
Definition juce_CodeEditorComponent.cpp:152
bool isDisplayingProtectedText() const override
Definition juce_CodeEditorComponent.cpp:51
void setSelection(Range< int > r) override
Definition juce_CodeEditorComponent.cpp:72
void setText(const String &newText) override
Definition juce_CodeEditorComponent.cpp:99
String getText(Range< int > r) const override
Definition juce_CodeEditorComponent.cpp:91
Range< int > getSelection() const override
Definition juce_CodeEditorComponent.cpp:66
int getOffsetAtPoint(Point< int > point) const override
Definition juce_CodeEditorComponent.cpp:146
int getTotalNumCharacters() const override
Definition juce_CodeEditorComponent.cpp:61
bool isReadOnly() const override
Definition juce_CodeEditorComponent.cpp:56
RectangleList< int > getTextBounds(Range< int > textRange) const override
Definition juce_CodeEditorComponent.cpp:109
int getTextInsertionOffset() const override
Definition juce_CodeEditorComponent.cpp:104
CodeEditorComponentTextInterface(CodeEditorComponent &codeEditorComponentToWrap)
Definition juce_CodeEditorComponent.cpp:46
Definition juce_CodeEditorComponent.cpp:31
CodeEditorAccessibilityHandler(CodeEditorComponent &codeEditorComponentToWrap)
Definition juce_CodeEditorComponent.cpp:33
Definition juce_CodeEditorComponent.cpp:161
int indexToColumn(int index, const String &line, int tabSpaces) const noexcept
Definition juce_CodeEditorComponent.cpp:324
CodeEditorLine() noexcept
Definition juce_CodeEditorComponent.cpp:163
bool update(CodeDocument &codeDoc, int lineNum, CodeDocument::Iterator &source, CodeTokeniser *tokeniser, const int tabSpaces, const CodeDocument::Position &selStart, const CodeDocument::Position &selEnd)
Definition juce_CodeEditorComponent.cpp:165
int highlightColumnStart
Definition juce_CodeEditorComponent.cpp:265
Array< SyntaxToken > tokens
Definition juce_CodeEditorComponent.cpp:264
void getHighlightArea(RectangleList< float > &area, float x, int y, int lineH, float characterWidth) const
Definition juce_CodeEditorComponent.cpp:216
static void replaceTabsWithSpaces(Array< SyntaxToken > &tokens, const int spacesPerTab)
Definition juce_CodeEditorComponent.cpp:303
static void addToken(Array< SyntaxToken > &dest, const String &text, int length, int type)
Definition juce_CodeEditorComponent.cpp:342
void draw(CodeEditorComponent &owner, Graphics &g, const Font &fontToUse, const float rightClip, const float x, const int y, const int lineH, const float characterWidth) const
Definition juce_CodeEditorComponent.cpp:223
int highlightColumnEnd
Definition juce_CodeEditorComponent.cpp:265
static void createTokens(int startPosition, const String &lineText, CodeDocument::Iterator &source, CodeTokeniser &tokeniser, Array< SyntaxToken > &newTokens)
Definition juce_CodeEditorComponent.cpp:267
Definition juce_CodeEditorComponent.cpp:415
void paint(Graphics &g) override
Definition juce_CodeEditorComponent.cpp:419
void documentChanged(CodeDocument &doc, int newFirstLine)
Definition juce_CodeEditorComponent.cpp:447
int lastNumLines
Definition juce_CodeEditorComponent.cpp:460
int firstLine
Definition juce_CodeEditorComponent.cpp:460
GutterComponent()
Definition juce_CodeEditorComponent.cpp:417
Definition juce_CodeEditorComponent.cpp:382
CodeEditorComponent & owner
Definition juce_CodeEditorComponent.cpp:387
void timerCallback() override
Definition juce_CodeEditorComponent.cpp:389
Pimpl(CodeEditorComponent &ed)
Definition juce_CodeEditorComponent.cpp:384
void scrollBarMoved(ScrollBar *scrollBarThatHasMoved, double newRangeStart) override
Definition juce_CodeEditorComponent.cpp:392
void codeDocumentTextInserted(const String &newText, int pos) override
Definition juce_CodeEditorComponent.cpp:400
void handleAsyncUpdate() override
Definition juce_CodeEditorComponent.cpp:390
void codeDocumentTextDeleted(int start, int end) override
Definition juce_CodeEditorComponent.cpp:405
Definition juce_CodeEditorComponent.h:44
CodeTokeniser * codeTokeniser
Definition juce_CodeEditorComponent.h:419
int getFirstLineOnScreen() const noexcept
Definition juce_CodeEditorComponent.h:85
void getCommandInfo(CommandID, ApplicationCommandInfo &) override
Definition juce_CodeEditorComponent.cpp:1412
int lineHeight
Definition juce_CodeEditorComponent.h:391
void rebuildLineTokensAsync()
Definition juce_CodeEditorComponent.cpp:638
Array< CodeDocument::Iterator > cachedIterators
Definition juce_CodeEditorComponent.h:428
void lookAndFeelChanged() override
Definition juce_CodeEditorComponent.cpp:1468
void mouseUp(const MouseEvent &) override
Definition juce_CodeEditorComponent.cpp:1569
void mouseDrag(const MouseEvent &) override
Definition juce_CodeEditorComponent.cpp:1563
bool moveCaretToStartOfLine(bool selecting)
Definition juce_CodeEditorComponent.cpp:1189
~CodeEditorComponent() override
Definition juce_CodeEditorComponent.cpp:504
void selectRegion(const CodeDocument::Position &start, const CodeDocument::Position &end)
Definition juce_CodeEditorComponent.cpp:1284
String getTabString(int numSpaces) const
Definition juce_CodeEditorComponent.cpp:1630
double xOffset
Definition juce_CodeEditorComponent.h:394
virtual bool pasteFromClipboard()
Definition juce_CodeEditorComponent.cpp:1045
CodeEditorComponent(CodeDocument &document, CodeTokeniser *codeTokeniser)
Definition juce_CodeEditorComponent.cpp:465
void scrollToLineInternal(int line)
Definition juce_CodeEditorComponent.cpp:808
bool pageDown(bool selecting)
Definition juce_CodeEditorComponent.cpp:1144
DragType dragType
Definition juce_CodeEditorComponent.h:416
std::unique_ptr< GutterComponent > gutter
Definition juce_CodeEditorComponent.h:405
void indentSelection()
Definition juce_CodeEditorComponent.cpp:968
void codeDocumentChanged(int start, int end)
Definition juce_CodeEditorComponent.cpp:685
void setTemporaryUnderlining(const Array< Range< int > > &) override
Definition juce_CodeEditorComponent.cpp:531
void updateCachedIterators(int maxLineNum)
Definition juce_CodeEditorComponent.cpp:1731
virtual void handleTabKey()
Definition juce_CodeEditorComponent.cpp:1375
void retokenise(int startIndex, int endIndex)
Definition juce_CodeEditorComponent.cpp:707
ApplicationCommandManager * appCommandManager
Definition juce_CodeEditorComponent.h:399
void clearCachedIterators(int firstLineToBeInvalid)
Definition juce_CodeEditorComponent.cpp:1721
ScrollBar verticalScrollBar
Definition juce_CodeEditorComponent.h:398
virtual void handleReturnKey()
Definition juce_CodeEditorComponent.cpp:1370
bool moveCaretRight(bool moveInWholeWordSteps, bool selecting)
Definition juce_CodeEditorComponent.cpp:1081
void setHighlightedRegion(const Range< int > &newRange) override
Definition juce_CodeEditorComponent.cpp:1337
void scrollToColumnInternal(double column)
Definition juce_CodeEditorComponent.cpp:826
void setSelection(CodeDocument::Position, CodeDocument::Position)
Definition juce_CodeEditorComponent.cpp:1491
void updateScrollBars()
Definition juce_CodeEditorComponent.cpp:799
void newTransaction()
Definition juce_CodeEditorComponent.cpp:1314
Colour getColourForTokenType(int tokenType) const
Definition juce_CodeEditorComponent.cpp:1714
int linesOnScreen
Definition juce_CodeEditorComponent.h:391
bool moveCaretToEndOfLine(bool selecting)
Definition juce_CodeEditorComponent.cpp:1210
void setReadOnly(bool shouldBeReadOnly) noexcept
Definition juce_CodeEditorComponent.cpp:561
void loadContent(const String &newContent)
Definition juce_CodeEditorComponent.cpp:514
bool readOnly
Definition juce_CodeEditorComponent.h:393
void setScrollbarThickness(int thickness)
Definition juce_CodeEditorComponent.cpp:629
void focusLost(FocusChangeType) override
Definition juce_CodeEditorComponent.cpp:1616
CodeDocument::Position selectionEnd
Definition juce_CodeEditorComponent.h:395
bool moveCaretToEnd(bool selecting)
Definition juce_CodeEditorComponent.cpp:1202
int getGutterSize() const noexcept
Definition juce_CodeEditorComponent.cpp:509
void scrollToKeepCaretOnScreen()
Definition juce_CodeEditorComponent.cpp:863
void moveLineDelta(int delta, bool selecting)
Definition juce_CodeEditorComponent.cpp:1105
bool deleteWhitespaceBackwardsToTabStop()
Definition juce_CodeEditorComponent.cpp:942
void paint(Graphics &) override
Definition juce_CodeEditorComponent.cpp:597
bool scrollDown()
Definition juce_CodeEditorComponent.cpp:1171
void indentSelectedLines(int spacesToAdd)
Definition juce_CodeEditorComponent.cpp:971
virtual void performPopupMenuAction(int menuItemID)
Definition juce_CodeEditorComponent.cpp:1519
int columnToTryToMaintain
Definition juce_CodeEditorComponent.h:392
bool selectAll()
Definition juce_CodeEditorComponent.cpp:1275
int indexToColumn(int line, int index) const noexcept
Definition juce_CodeEditorComponent.cpp:1637
virtual bool cutToClipboard()
Definition juce_CodeEditorComponent.cpp:1037
bool deleteForwards(bool moveInWholeWordSteps)
Definition juce_CodeEditorComponent.cpp:1256
CodeDocument::Position getCaretPos() const
Definition juce_CodeEditorComponent.h:93
virtual void caretPositionMoved()
Definition juce_CodeEditorComponent.cpp:1389
void getIteratorForPosition(int position, CodeDocument::Iterator &)
Definition juce_CodeEditorComponent.cpp:1766
int scrollbarThickness
Definition juce_CodeEditorComponent.h:392
float charWidth
Definition juce_CodeEditorComponent.h:390
void setTabSize(int numSpacesPerTab, bool insertSpacesInsteadOfTabCharacters)
Definition juce_CodeEditorComponent.cpp:1619
void setLineNumbersShown(bool shouldBeShown)
Definition juce_CodeEditorComponent.cpp:544
Range< int > getHighlightedRegion() const override
Definition juce_CodeEditorComponent.cpp:1326
@ notDragging
Definition juce_CodeEditorComponent.h:411
@ draggingSelectionStart
Definition juce_CodeEditorComponent.h:412
@ draggingSelectionEnd
Definition juce_CodeEditorComponent.h:413
void resized() override
Definition juce_CodeEditorComponent.cpp:577
bool useSpacesForTabs
Definition juce_CodeEditorComponent.h:393
bool performCommand(CommandID)
Definition juce_CodeEditorComponent.cpp:1474
void scrollToKeepLinesOnScreen(Range< int > linesToShow)
Definition juce_CodeEditorComponent.cpp:855
void insertText(const String &)
Definition juce_CodeEditorComponent.cpp:902
bool perform(const InvocationInfo &) override
Definition juce_CodeEditorComponent.cpp:1463
CodeDocument::Position caretPos
Definition juce_CodeEditorComponent.h:395
void focusGained(FocusChangeType) override
Definition juce_CodeEditorComponent.cpp:1615
void insertTextAtCaret(const String &textToInsert) override
Definition juce_CodeEditorComponent.cpp:897
CodeDocument & getDocument() const noexcept
Definition juce_CodeEditorComponent.h:63
void mouseDown(const MouseEvent &) override
Definition juce_CodeEditorComponent.cpp:1531
bool skipBackwardsToPreviousTab()
Definition juce_CodeEditorComponent.cpp:1234
int spacesPerTab
Definition juce_CodeEditorComponent.h:389
void setCommandManager(ApplicationCommandManager *newManager) noexcept
Definition juce_CodeEditorComponent.cpp:1320
virtual void handleEscapeKey()
Definition juce_CodeEditorComponent.cpp:1380
int columnToIndex(int line, int column) const noexcept
Definition juce_CodeEditorComponent.cpp:1660
int getTabSize() const noexcept
Definition juce_CodeEditorComponent.h:198
void scrollToColumn(int newFirstColumnOnScreen)
Definition juce_CodeEditorComponent.cpp:844
void scrollToLine(int newFirstLineOnScreen)
Definition juce_CodeEditorComponent.cpp:838
bool moveCaretLeft(bool moveInWholeWordSteps, bool selecting)
Definition juce_CodeEditorComponent.cpp:1057
void mouseDoubleClick(const MouseEvent &) override
Definition juce_CodeEditorComponent.cpp:1577
void setColourScheme(const ColourScheme &scheme)
Definition juce_CodeEditorComponent.cpp:1708
bool moveCaretUp(bool selecting)
Definition juce_CodeEditorComponent.cpp:1132
bool undo()
Definition juce_CodeEditorComponent.cpp:1292
int firstLineOnScreen
Definition juce_CodeEditorComponent.h:389
bool pageUp(bool selecting)
Definition juce_CodeEditorComponent.cpp:1152
void insertTabAtCaret()
Definition juce_CodeEditorComponent.cpp:919
Rectangle< int > getCharacterBounds(const CodeDocument::Position &pos) const
Definition juce_CodeEditorComponent.cpp:879
String getTextInRange(const Range< int > &range) const override
Definition juce_CodeEditorComponent.cpp:1343
ScrollBar horizontalScrollBar
Definition juce_CodeEditorComponent.h:398
bool moveCaretDown(bool selecting)
Definition juce_CodeEditorComponent.cpp:1120
std::unique_ptr< Pimpl > pimpl
Definition juce_CodeEditorComponent.h:402
ApplicationCommandTarget * getNextCommandTarget() override
Definition juce_CodeEditorComponent.cpp:1394
Rectangle< int > getCaretRectangle() override
Definition juce_CodeEditorComponent.cpp:536
CodeDocument & document
Definition juce_CodeEditorComponent.h:386
bool isTextInputActive() const override
Definition juce_CodeEditorComponent.cpp:526
void getAllCommands(Array< CommandID > &) override
Definition juce_CodeEditorComponent.cpp:1399
bool moveCaretToTop(bool selecting)
Definition juce_CodeEditorComponent.cpp:1182
void setFont(const Font &newFont)
Definition juce_CodeEditorComponent.cpp:1683
void rebuildLineTokens()
Definition juce_CodeEditorComponent.cpp:643
bool redo()
Definition juce_CodeEditorComponent.cpp:1303
bool showLineNumbers
Definition juce_CodeEditorComponent.h:393
virtual void updateCaretPosition()
Definition juce_CodeEditorComponent.cpp:718
void deselectAll()
Definition juce_CodeEditorComponent.cpp:790
CodeDocument::Position getPositionAt(int x, int y) const
Definition juce_CodeEditorComponent.cpp:887
bool deleteBackwards(bool moveInWholeWordSteps)
Definition juce_CodeEditorComponent.cpp:1218
void scrollBy(int deltaLines)
Definition juce_CodeEditorComponent.cpp:850
OwnedArray< CodeEditorLine > lines
Definition juce_CodeEditorComponent.h:423
Font font
Definition juce_CodeEditorComponent.h:388
virtual bool copyToClipboard()
Definition juce_CodeEditorComponent.cpp:1026
bool scrollUp()
Definition juce_CodeEditorComponent.cpp:1160
bool isHighlightActive() const noexcept
Definition juce_CodeEditorComponent.cpp:1332
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_CodeEditorComponent.cpp:1839
void mouseWheelMove(const MouseEvent &, const MouseWheelDetails &) override
Definition juce_CodeEditorComponent.cpp:1591
bool keyPressed(const KeyPress &) override
Definition juce_CodeEditorComponent.cpp:1350
void cut()
Definition juce_CodeEditorComponent.cpp:1021
bool isReadOnly() const noexcept
Definition juce_CodeEditorComponent.h:220
virtual void editorViewportPositionChanged()
Definition juce_CodeEditorComponent.cpp:1385
bool shouldFollowDocumentChanges
Definition juce_CodeEditorComponent.h:393
virtual void addPopupMenuItems(PopupMenu &menuToAddTo, const MouseEvent *mouseClickEvent)
Definition juce_CodeEditorComponent.cpp:1506
@ lineNumberTextId
Definition juce_CodeEditorComponent.h:281
@ backgroundColourId
Definition juce_CodeEditorComponent.h:277
@ highlightColourId
Definition juce_CodeEditorComponent.h:278
@ lineNumberBackgroundId
Definition juce_CodeEditorComponent.h:280
@ defaultTextColourId
Definition juce_CodeEditorComponent.h:279
std::unique_ptr< CaretComponent > caret
Definition juce_CodeEditorComponent.h:397
int columnsOnScreen
Definition juce_CodeEditorComponent.h:391
void unindentSelection()
Definition juce_CodeEditorComponent.cpp:969
void moveCaretTo(const CodeDocument::Position &newPos, bool selecting)
Definition juce_CodeEditorComponent.cpp:729
ColourScheme colourScheme
Definition juce_CodeEditorComponent.h:420
CodeDocument::Position selectionStart
Definition juce_CodeEditorComponent.h:395
Definition juce_CodeTokeniser.h:39
virtual int readNextToken(CodeDocument::Iterator &source)=0
Definition juce_Colour.h:38
Component * getParentComponent() const noexcept
Definition juce_Component.h:804
Point< int > getPosition() const noexcept
Definition juce_Component.h:286
int getHeight() const noexcept
Definition juce_Component.h:274
Rectangle< int > getLocalArea(const Component *sourceComponent, Rectangle< int > areaRelativeToSourceComponent) const
Definition juce_Component.cpp:1138
void addAndMakeVisible(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1554
FocusChangeType
Definition juce_Component.h:1890
AccessibilityHandler * getAccessibilityHandler()
Definition juce_Component.cpp:3302
void setOpaque(bool shouldBeOpaque)
Definition juce_Component.cpp:829
void setMouseCursor(const MouseCursor &cursorType)
Definition juce_Component.cpp:1859
void repaint()
Definition juce_Component.cpp:1917
Component() noexcept
Definition juce_Component.cpp:517
void removeChildComponent(Component *childToRemove)
Definition juce_Component.cpp:1569
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
int getWidth() const noexcept
Definition juce_Component.h:271
void mouseWheelMove(const MouseEvent &event, const MouseWheelDetails &wheel) override
Definition juce_Component.cpp:2303
static void JUCE_CALLTYPE beginDragAutoRepeat(int millisecondsBetweenCallbacks)
Definition juce_Component.cpp:2745
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
void invalidateAccessibilityHandler()
Definition juce_Component.cpp:3297
Definition juce_Font.h:42
static const String & getDefaultMonospacedFontName()
Definition juce_Font.cpp:467
Definition juce_GlyphArrangement.h:117
void addFittedText(const Font &font, const String &text, float x, float y, float width, float height, Justification layout, int maximumLinesToUse, float minimumHorizontalScale=0.0f)
Definition juce_GlyphArrangement.cpp:310
void draw(const Graphics &) const
Definition juce_GlyphArrangement.cpp:706
Definition juce_GraphicsContext.h:45
@ centredRight
Definition juce_Justification.h:148
@ centredLeft
Definition juce_Justification.h:143
Definition juce_KeyPress.h:40
static const int tabKey
Definition juce_KeyPress.h:192
static const int escapeKey
Definition juce_KeyPress.h:190
static const int returnKey
Definition juce_KeyPress.h:191
static ModalComponentManager::Callback * forComponent(void(*functionToCall)(int, ComponentType *), ComponentType *component)
Definition juce_ModalComponentManager.h:276
@ commandModifier
Definition juce_ModifierKeys.h:147
@ shiftModifier
Definition juce_ModifierKeys.h:121
@ NormalCursor
Definition juce_MouseCursor.h:48
@ IBeamCursor
Definition juce_MouseCursor.h:51
Definition juce_MouseEvent.h:39
Definition juce_Point.h:42
ValueType y
Definition juce_Point.h:247
ValueType x
Definition juce_Point.h:246
Definition juce_Range.h:40
constexpr ValueType getStart() const noexcept
Definition juce_Range.h:80
constexpr ValueType getEnd() const noexcept
Definition juce_Range.h:86
Definition juce_Rectangle.h:67
Definition juce_RectangleList.h:43
void add(RectangleType rect)
Definition juce_RectangleList.h:110
Definition juce_ScopedValueSetter.h:55
Definition juce_String.h:53
static String repeatedString(StringRef stringToRepeat, int numberOfTimesToRepeat)
Definition juce_String.cpp:1147
int length() const noexcept
Definition juce_String.cpp:511
static String charToString(juce_wchar character)
Definition juce_String.cpp:359
String substring(int startIndex, int endIndex) const
Definition juce_String.cpp:1498
bool isNotEmpty() const noexcept
Definition juce_String.h:316
Definition juce_StringRef.h:62
static String getTextFromClipboard()
Definition juce_linux_Windowing.cpp:798
static void copyTextToClipboard(const String &text)
Definition juce_linux_Windowing.cpp:793
Timer() noexcept
Definition juce_Timer.cpp:316
* e
Definition inflate.c:1404
UINT_D64 w
Definition inflate.c:942
unsigned * m
Definition inflate.c:1559
struct huft * t
Definition inflate.c:943
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
unsigned f
Definition inflate.c:1572
struct @113205115357366127300225113341150224053346037032::@137033172036070230260373056156374243321245367362 right
static const char * name
Definition pugl.h:1582
virtual ASIOError start()=0
struct backing_store_struct * info
Definition jmemsys.h:183
#define TRANS(stringLiteral)
Definition juce_LocalisedStrings.h:208
Definition juce_CodeEditorComponent.cpp:358
static int findFirstNonWhitespaceChar(StringRef line) noexcept
Definition juce_CodeEditorComponent.cpp:359
@ paste
Definition juce_ApplicationCommandID.h:74
@ del
Definition juce_ApplicationCommandID.h:65
@ redo
Definition juce_ApplicationCommandID.h:86
@ undo
Definition juce_ApplicationCommandID.h:83
@ cut
Definition juce_ApplicationCommandID.h:68
@ copy
Definition juce_ApplicationCommandID.h:71
@ selectAll
Definition juce_ApplicationCommandID.h:77
Definition carla_juce.cpp:31
constexpr Type jmin(Type a, Type b)
Definition juce_MathsFunctions.h:106
int CommandID
Definition juce_ApplicationCommandID.h:37
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
RangedDirectoryIterator end(const RangedDirectoryIterator &)
Definition juce_RangedDirectoryIterator.h:184
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
@ textChanged
Definition juce_AccessibilityEvent.h:71
@ textSelectionChanged
Definition juce_AccessibilityEvent.h:64
void ignoreUnused(Types &&...) noexcept
Definition juce_MathsFunctions.h:333
static void codeEditorMenuCallback(int menuResult, CodeEditorComponent *editor)
Definition juce_CodeEditorComponent.cpp:1524
bool isPositiveAndBelow(Type1 valueToTest, Type2 upperLimit) noexcept
Definition juce_MathsFunctions.h:279
int roundToInt(const FloatType value) noexcept
Definition juce_MathsFunctions.h:465
AccessibilityRole
Definition juce_AccessibilityRole.h:37
@ column
Definition juce_AccessibilityRole.h:52
@ staticText
Definition juce_AccessibilityRole.h:45
@ editableText
Definition juce_AccessibilityRole.h:46
constexpr int numElementsInArray(Type(&)[N]) noexcept
Definition juce_MathsFunctions.h:344
png_uint_32 length
Definition png.c:2247
Definition juce_ApplicationCommandInfo.h:45
Definition juce_ApplicationCommandTarget.h:61
Definition juce_CodeEditorComponent.cpp:247
String text
Definition juce_CodeEditorComponent.cpp:259
int length
Definition juce_CodeEditorComponent.cpp:260
int tokenType
Definition juce_CodeEditorComponent.cpp:261
SyntaxToken(const String &t, const int len, const int type) noexcept
Definition juce_CodeEditorComponent.cpp:248
Definition juce_CodeEditorComponent.h:228
Colour colour
Definition juce_CodeEditorComponent.h:230
String name
Definition juce_CodeEditorComponent.h:229
Definition juce_CodeEditorComponent.h:225
Array< TokenType > types
Definition juce_CodeEditorComponent.h:233
void set(const String &name, Colour colour)
Definition juce_CodeEditorComponent.cpp:1691
State(const CodeEditorComponent &)
Definition juce_CodeEditorComponent.cpp:1795
int lastCaretPos
Definition juce_CodeEditorComponent.h:185
int lastSelectionEnd
Definition juce_CodeEditorComponent.h:185
void restoreState(CodeEditorComponent &) const
Definition juce_CodeEditorComponent.cpp:1815
String toString() const
Definition juce_CodeEditorComponent.cpp:1833
int lastTopLine
Definition juce_CodeEditorComponent.h:185
Definition juce_MouseEvent.h:392
float deltaY
Definition juce_MouseEvent.h:410
float deltaX
Definition juce_MouseEvent.h:401
static bool invokeKeyFunction(CallbackClass &target, const KeyPress &key)
Definition juce_TextEditorKeyMapper.h:43
const char * text
Definition swell-functions.h:167
ZCONST char * key
Definition crypt.c:587
int r
Definition crypt.c:458
void handler(int signal)
Definition fileio.c:1632
int result
Definition process.c:1455
#define const
Definition zconf.h:137