qsciscintilla.sip 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546
  1. // This is the SIP interface definition for QsciScintilla.
  2. //
  3. // Copyright (c) 2017 Riverbank Computing Limited <info@riverbankcomputing.com>
  4. //
  5. // This file is part of QScintilla.
  6. //
  7. // This file may be used under the terms of the GNU General Public License
  8. // version 3.0 as published by the Free Software Foundation and appearing in
  9. // the file LICENSE included in the packaging of this file. Please review the
  10. // following information to ensure the GNU General Public License version 3.0
  11. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  12. //
  13. // If you do not wish to use this file under the terms of the GPL version 3.0
  14. // then you may purchase a commercial license. For more information contact
  15. // info@riverbankcomputing.com.
  16. //
  17. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  18. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  19. class QsciScintilla : QsciScintillaBase
  20. {
  21. %TypeHeaderCode
  22. #include <Qsci/qsciscintilla.h>
  23. %End
  24. public:
  25. enum {
  26. AiMaintain,
  27. AiOpening,
  28. AiClosing
  29. };
  30. enum AnnotationDisplay {
  31. AnnotationHidden,
  32. AnnotationStandard,
  33. AnnotationBoxed,
  34. AnnotationIndented,
  35. };
  36. enum AutoCompletionSource {
  37. AcsNone,
  38. AcsAll,
  39. AcsDocument,
  40. AcsAPIs
  41. };
  42. enum AutoCompletionUseSingle {
  43. AcusNever,
  44. AcusExplicit,
  45. AcusAlways
  46. };
  47. enum BraceMatch {
  48. NoBraceMatch,
  49. StrictBraceMatch,
  50. SloppyBraceMatch
  51. };
  52. enum CallTipsPosition {
  53. CallTipsBelowText,
  54. CallTipsAboveText,
  55. };
  56. enum CallTipsStyle {
  57. CallTipsNone,
  58. CallTipsNoContext,
  59. CallTipsNoAutoCompletionContext,
  60. CallTipsContext
  61. };
  62. enum EdgeMode {
  63. EdgeNone,
  64. EdgeLine,
  65. EdgeBackground,
  66. EdgeMultipleLines,
  67. };
  68. enum EolMode {
  69. EolWindows,
  70. EolUnix,
  71. EolMac
  72. };
  73. enum FoldStyle {
  74. NoFoldStyle,
  75. PlainFoldStyle,
  76. CircledFoldStyle,
  77. BoxedFoldStyle,
  78. CircledTreeFoldStyle,
  79. BoxedTreeFoldStyle
  80. };
  81. enum IndicatorStyle {
  82. PlainIndicator,
  83. SquiggleIndicator,
  84. TTIndicator,
  85. DiagonalIndicator,
  86. StrikeIndicator,
  87. HiddenIndicator,
  88. BoxIndicator,
  89. RoundBoxIndicator,
  90. StraightBoxIndicator,
  91. FullBoxIndicator,
  92. DashesIndicator,
  93. DotsIndicator,
  94. SquiggleLowIndicator,
  95. DotBoxIndicator,
  96. SquigglePixmapIndicator,
  97. ThickCompositionIndicator,
  98. ThinCompositionIndicator,
  99. TextColorIndicator,
  100. TriangleIndicator,
  101. TriangleCharacterIndicator,
  102. };
  103. enum {
  104. MoNone,
  105. MoSublineSelect,
  106. };
  107. enum MarginType {
  108. SymbolMargin,
  109. SymbolMarginDefaultForegroundColor,
  110. SymbolMarginDefaultBackgroundColor,
  111. NumberMargin,
  112. TextMargin,
  113. TextMarginRightJustified,
  114. SymbolMarginColor,
  115. };
  116. enum MarkerSymbol {
  117. Circle,
  118. Rectangle,
  119. RightTriangle,
  120. SmallRectangle,
  121. RightArrow,
  122. Invisible,
  123. DownTriangle,
  124. Minus,
  125. Plus,
  126. VerticalLine,
  127. BottomLeftCorner,
  128. LeftSideSplitter,
  129. BoxedPlus,
  130. BoxedPlusConnected,
  131. BoxedMinus,
  132. BoxedMinusConnected,
  133. RoundedBottomLeftCorner,
  134. LeftSideRoundedSplitter,
  135. CircledPlus,
  136. CircledPlusConnected,
  137. CircledMinus,
  138. CircledMinusConnected,
  139. Background,
  140. ThreeDots,
  141. ThreeRightArrows,
  142. FullRectangle,
  143. LeftRectangle,
  144. Underline,
  145. Bookmark
  146. };
  147. enum TabDrawMode {
  148. TabLongArrow,
  149. TabStrikeOut,
  150. };
  151. enum WhitespaceVisibility {
  152. WsInvisible,
  153. WsVisible,
  154. WsVisibleAfterIndent,
  155. WsVisibleOnlyInIndent,
  156. };
  157. enum WrapMode {
  158. WrapNone,
  159. WrapWord,
  160. WrapCharacter,
  161. WrapWhitespace,
  162. };
  163. enum WrapVisualFlag {
  164. WrapFlagNone,
  165. WrapFlagByText,
  166. WrapFlagByBorder,
  167. WrapFlagInMargin,
  168. };
  169. enum WrapIndentMode {
  170. WrapIndentFixed,
  171. WrapIndentSame,
  172. WrapIndentIndented,
  173. };
  174. QsciScintilla(QWidget *parent /TransferThis/ = 0);
  175. virtual ~QsciScintilla();
  176. virtual QStringList apiContext(int pos, int &context_start,
  177. int &last_word_start);
  178. void annotate(int line, const QString &text, int style);
  179. void annotate(int line, const QString &text, const QsciStyle &style);
  180. void annotate(int line, const QsciStyledText &text);
  181. void annotate(int line, const QList<QsciStyledText> &text);
  182. QString annotation(int line) const;
  183. AnnotationDisplay annotationDisplay() const;
  184. void clearAnnotations(int line = -1);
  185. bool autoCompletionCaseSensitivity() const;
  186. bool autoCompletionFillupsEnabled() const;
  187. bool autoCompletionReplaceWord() const;
  188. bool autoCompletionShowSingle() const;
  189. AutoCompletionSource autoCompletionSource() const;
  190. int autoCompletionThreshold() const;
  191. AutoCompletionUseSingle autoCompletionUseSingle() const;
  192. bool autoIndent() const;
  193. bool backspaceUnindents() const;
  194. void beginUndoAction();
  195. BraceMatch braceMatching() const;
  196. QByteArray bytes(int start, int end) const;
  197. CallTipsPosition callTipsPosition() const;
  198. CallTipsStyle callTipsStyle() const;
  199. int callTipsVisible() const;
  200. void cancelList();
  201. bool caseSensitive() const;
  202. void clearRegisteredImages();
  203. QColor color() const;
  204. QList<int> contractedFolds() const;
  205. void convertEols(EolMode mode);
  206. QMenu *createStandardContextMenu() /Factory/;
  207. QsciDocument document() const;
  208. void endUndoAction();
  209. QColor edgeColor() const;
  210. int edgeColumn() const;
  211. EdgeMode edgeMode() const;
  212. EolMode eolMode() const;
  213. bool eolVisibility() const;
  214. int extraAscent() const;
  215. int extraDescent() const;
  216. virtual bool findFirst(const QString &expr, bool re, bool cs, bool wo,
  217. bool wrap, bool forward = true, int line = -1, int index = -1,
  218. bool show = true, bool posix = false);
  219. virtual bool findFirstInSelection(const QString &expr, bool re, bool cs,
  220. bool wo, bool forward = true, bool show = true,
  221. bool posix = false);
  222. virtual bool findNext();
  223. int firstVisibleLine() const;
  224. FoldStyle folding() const;
  225. void getCursorPosition(int *line, int *index) const;
  226. void getSelection(int *lineFrom, int *indexFrom, int *lineTo,
  227. int *indexTo) const;
  228. bool hasSelectedText() const;
  229. int indentation(int line) const;
  230. bool indentationGuides() const;
  231. bool indentationsUseTabs() const;
  232. int indentationWidth() const;
  233. void clearIndicatorRange(int lineFrom, int indexFrom, int lineTo,
  234. int indexTo, int indicatorNumber);
  235. void fillIndicatorRange(int lineFrom, int indexFrom, int lineTo,
  236. int indexTo, int indicatorNumber);
  237. int indicatorDefine(IndicatorStyle style, int indicatorNumber = -1);
  238. bool indicatorDrawUnder(int indicatorNumber) const;
  239. bool isCallTipActive() const;
  240. bool isListActive() const;
  241. bool isModified() const;
  242. bool isReadOnly() const;
  243. bool isRedoAvailable() const;
  244. bool isUndoAvailable() const;
  245. bool isUtf8() const;
  246. bool isWordCharacter(char ch) const;
  247. int lineAt(const QPoint &pos) const;
  248. void lineIndexFromPosition(int position, int *line, int *index) const;
  249. int lineLength(int line) const;
  250. int lines() const;
  251. int length() const;
  252. QsciLexer *lexer() const;
  253. QColor marginBackgroundColor(int margin) const;
  254. bool marginLineNumbers(int margin) const;
  255. int marginMarkerMask(int margin) const;
  256. int marginOptions() const;
  257. bool marginSensitivity(int margin) const;
  258. MarginType marginType(int margin) const;
  259. int marginWidth(int margin) const;
  260. int margins() const;
  261. int markerDefine(MarkerSymbol sym, int markerNumber = -1);
  262. int markerDefine(char ch, int markerNumber = -1);
  263. int markerDefine(const QPixmap &pm, int markerNumber = -1);
  264. int markerDefine(const QImage &im, int markerNumber = -1);
  265. int markerAdd(int linenr, int markerNumber);
  266. unsigned markersAtLine(int linenr) const;
  267. void markerDelete(int linenr, int markerNumber = -1);
  268. void markerDeleteAll(int markerNumber = -1);
  269. void markerDeleteHandle(int mhandle);
  270. int markerLine(int mhandle) const;
  271. int markerFindNext(int linenr, unsigned mask) const;
  272. int markerFindPrevious(int linenr, unsigned mask) const;
  273. bool overwriteMode() const;
  274. QColor paper() const;
  275. int positionFromLineIndex(int line, int index) const;
  276. bool read(QIODevice *io) /ReleaseGIL/;
  277. virtual void recolor(int start = 0, int end = -1);
  278. void registerImage(int id, const QPixmap &pm);
  279. void registerImage(int id, const QImage &im);
  280. virtual void replace(const QString &replaceStr);
  281. void resetFoldMarginColors();
  282. void resetHotspotBackgroundColor();
  283. void resetHotspotForegroundColor();
  284. void setFoldMarginColors(const QColor &fore, const QColor &back);
  285. void setAnnotationDisplay(AnnotationDisplay display);
  286. void setAutoCompletionFillupsEnabled(bool enabled);
  287. void setAutoCompletionFillups(const char *fillups);
  288. void setAutoCompletionWordSeparators(const QStringList &separators);
  289. void setCallTipsBackgroundColor(const QColor &col);
  290. void setCallTipsForegroundColor(const QColor &col);
  291. void setCallTipsHighlightColor(const QColor &col);
  292. void setCallTipsPosition(CallTipsPosition position);
  293. void setCallTipsStyle(CallTipsStyle style);
  294. void setCallTipsVisible(int nr);
  295. void setContractedFolds(const QList<int> &folds);
  296. void setDocument(const QsciDocument &document);
  297. void addEdgeColumn(int colnr, const QColor &col);
  298. void clearEdgeColumns();
  299. void setEdgeColor(const QColor &col);
  300. void setEdgeColumn(int colnr);
  301. void setEdgeMode(EdgeMode mode);
  302. void setFirstVisibleLine(int linenr);
  303. void setFont(const QFont &f);
  304. void setHotspotBackgroundColor(const QColor &col);
  305. void setHotspotForegroundColor(const QColor &col);
  306. void setHotspotUnderline(bool enable);
  307. void setHotspotWrap(bool enable);
  308. void setIndicatorDrawUnder(bool under, int indicatorNumber = -1);
  309. void setIndicatorForegroundColor(const QColor &col,
  310. int indicatorNumber = -1);
  311. void setIndicatorHoverForegroundColor(const QColor &col,
  312. int indicatorNumber = -1);
  313. void setIndicatorHoverStyle(IndicatorStyle style,
  314. int indicatorNumber = -1);
  315. void setIndicatorOutlineColor(const QColor &col, int indicatorNumber = -1);
  316. void setMarginBackgroundColor(int margin, const QColor &col);
  317. void setMarginOptions(int options);
  318. void setMarginText(int line, const QString &text, int style);
  319. void setMarginText(int line, const QString &text, const QsciStyle &style);
  320. void setMarginText(int line, const QsciStyledText &text);
  321. void setMarginText(int line, const QList<QsciStyledText> &text);
  322. void setMarginType(int margin, MarginType type);
  323. void clearMarginText(int line = -1);
  324. void setMargins(int margins);
  325. void setMarkerBackgroundColor(const QColor &col, int markerNumber = -1);
  326. void setMarkerForegroundColor(const QColor &col, int markerNumber = -1);
  327. void setMatchedBraceBackgroundColor(const QColor &col);
  328. void setMatchedBraceForegroundColor(const QColor &col);
  329. void setMatchedBraceIndicator(int indicatorNumber);
  330. void resetMatchedBraceIndicator();
  331. void setUnmatchedBraceBackgroundColor(const QColor &col);
  332. void setUnmatchedBraceForegroundColor(const QColor &col);
  333. void setUnmatchedBraceIndicator(int indicatorNumber);
  334. void resetUnmatchedBraceIndicator();
  335. void setWrapVisualFlags(WrapVisualFlag endFlag,
  336. WrapVisualFlag startFlag = QsciScintilla::WrapFlagNone,
  337. int indent = 0);
  338. QString selectedText() const;
  339. bool selectionToEol() const;
  340. void setSelectionToEol(bool filled);
  341. void setExtraAscent(int extra);
  342. void setExtraDescent(int extra);
  343. void setOverwriteMode(bool overwrite);
  344. void setWhitespaceBackgroundColor(const QColor &col);
  345. void setWhitespaceForegroundColor(const QColor &col);
  346. void setWhitespaceSize(int size);
  347. void setWrapIndentMode(WrapIndentMode mode);
  348. void showUserList(int id, const QStringList &list);
  349. QsciCommandSet *standardCommands() const;
  350. void setTabDrawMode(TabDrawMode mode);
  351. TabDrawMode tabDrawMode() const;
  352. bool tabIndents() const;
  353. int tabWidth() const;
  354. QString text() const;
  355. QString text(int line) const;
  356. QString text(int start, int end) const;
  357. int textHeight(int linenr) const;
  358. int whitespaceSize() const;
  359. WhitespaceVisibility whitespaceVisibility() const;
  360. QString wordAtLineIndex(int line, int index) const;
  361. QString wordAtPoint(const QPoint &point) const;
  362. const char *wordCharacters() const;
  363. WrapMode wrapMode() const;
  364. WrapIndentMode wrapIndentMode() const;
  365. bool write(QIODevice *io) const /ReleaseGIL/;
  366. public slots:
  367. virtual void append(const QString &text);
  368. virtual void autoCompleteFromAll();
  369. virtual void autoCompleteFromAPIs();
  370. virtual void autoCompleteFromDocument();
  371. virtual void callTip();
  372. virtual void clear();
  373. virtual void copy();
  374. virtual void cut();
  375. virtual void ensureCursorVisible();
  376. virtual void ensureLineVisible(int line);
  377. virtual void foldAll(bool children = false);
  378. virtual void foldLine(int line);
  379. virtual void indent(int line);
  380. virtual void insert(const QString &text);
  381. virtual void insertAt(const QString &text, int line, int index);
  382. virtual void moveToMatchingBrace();
  383. virtual void paste();
  384. virtual void redo();
  385. virtual void removeSelectedText();
  386. virtual void replaceSelectedText(const QString &text);
  387. virtual void resetSelectionBackgroundColor();
  388. virtual void resetSelectionForegroundColor();
  389. virtual void selectAll(bool select = true);
  390. virtual void selectToMatchingBrace();
  391. virtual void setAutoCompletionCaseSensitivity(bool cs);
  392. virtual void setAutoCompletionReplaceWord(bool replace);
  393. virtual void setAutoCompletionShowSingle(bool single);
  394. virtual void setAutoCompletionSource(AutoCompletionSource source);
  395. virtual void setAutoCompletionThreshold(int thresh);
  396. virtual void setAutoCompletionUseSingle(AutoCompletionUseSingle single);
  397. virtual void setAutoIndent(bool autoindent);
  398. virtual void setBraceMatching(BraceMatch bm);
  399. virtual void setBackspaceUnindents(bool unindent);
  400. virtual void setCaretForegroundColor(const QColor &col);
  401. virtual void setCaretLineBackgroundColor(const QColor &col);
  402. virtual void setCaretLineVisible(bool enable);
  403. virtual void setCaretWidth(int width);
  404. virtual void setColor(const QColor &col);
  405. virtual void setCursorPosition(int line, int index);
  406. virtual void setEolMode(EolMode mode);
  407. virtual void setEolVisibility(bool visible);
  408. virtual void setFolding(FoldStyle fold, int margin=2);
  409. void clearFolds();
  410. virtual void setIndentation(int line, int indentation);
  411. virtual void setIndentationGuides(bool enable);
  412. virtual void setIndentationGuidesBackgroundColor(const QColor &col);
  413. virtual void setIndentationGuidesForegroundColor(const QColor &col);
  414. virtual void setIndentationsUseTabs(bool tabs);
  415. virtual void setIndentationWidth(int width);
  416. virtual void setLexer(QsciLexer *lexer = 0);
  417. virtual void setMarginsBackgroundColor(const QColor &col);
  418. virtual void setMarginsFont(const QFont &f);
  419. virtual void setMarginsForegroundColor(const QColor &col);
  420. virtual void setMarginLineNumbers(int margin, bool lnrs);
  421. virtual void setMarginMarkerMask(int margin, int mask);
  422. virtual void setMarginSensitivity(int margin, bool sens);
  423. virtual void setMarginWidth(int margin, int width);
  424. virtual void setMarginWidth(int margin, const QString &s);
  425. virtual void setModified(bool m);
  426. virtual void setPaper(const QColor &c);
  427. virtual void setReadOnly(bool ro);
  428. virtual void setSelection(int lineFrom, int indexFrom, int lineTo,
  429. int indexTo);
  430. virtual void setSelectionBackgroundColor(const QColor &col);
  431. virtual void setSelectionForegroundColor(const QColor &col);
  432. virtual void setTabIndents(bool indent);
  433. virtual void setTabWidth(int width);
  434. virtual void setText(const QString &text);
  435. virtual void setUtf8(bool cp);
  436. virtual void setWhitespaceVisibility(WhitespaceVisibility mode);
  437. virtual void setWrapMode(WrapMode mode);
  438. virtual void undo();
  439. virtual void unindent(int line);
  440. virtual void zoomIn(int range);
  441. virtual void zoomIn();
  442. virtual void zoomOut(int range);
  443. virtual void zoomOut();
  444. virtual void zoomTo(int size);
  445. signals:
  446. void cursorPositionChanged(int line, int index);
  447. void copyAvailable(bool yes);
  448. void indicatorClicked(int line, int index, Qt::KeyboardModifiers state);
  449. void indicatorReleased(int line, int index, Qt::KeyboardModifiers state);
  450. void linesChanged();
  451. void marginClicked(int margin, int line, Qt::KeyboardModifiers state);
  452. void marginRightClicked(int margin, int line, Qt::KeyboardModifiers state);
  453. void modificationAttempted();
  454. void modificationChanged(bool m);
  455. void selectionChanged();
  456. void textChanged();
  457. void userListActivated(int id, const QString &string);
  458. protected:
  459. virtual bool event(QEvent *event);
  460. virtual void changeEvent(QEvent *event);
  461. virtual void contextMenuEvent(QContextMenuEvent *event);
  462. private:
  463. QsciScintilla(const QsciScintilla &);
  464. };