mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
File diff suppressed because it is too large
Load Diff
@@ -16,12 +16,15 @@ module Linguist
|
|||||||
new.extract_tokens(data)
|
new.extract_tokens(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Start state on token, ignore anything till the next newline
|
||||||
SINGLE_LINE_COMMENTS = [
|
SINGLE_LINE_COMMENTS = [
|
||||||
'//', # C
|
'//', # C
|
||||||
'#', # Ruby
|
'#', # Ruby
|
||||||
'%', # Tex
|
'%', # Tex
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Start state on opening token, ignore anything until the closing
|
||||||
|
# token is reached.
|
||||||
MULTI_LINE_COMMENTS = [
|
MULTI_LINE_COMMENTS = [
|
||||||
['/*', '*/'], # C
|
['/*', '*/'], # C
|
||||||
['<!--', '-->'], # XML
|
['<!--', '-->'], # XML
|
||||||
@@ -30,7 +33,7 @@ module Linguist
|
|||||||
]
|
]
|
||||||
|
|
||||||
START_SINGLE_LINE_COMMENT = Regexp.compile(SINGLE_LINE_COMMENTS.map { |c|
|
START_SINGLE_LINE_COMMENT = Regexp.compile(SINGLE_LINE_COMMENTS.map { |c|
|
||||||
"^\s*#{Regexp.escape(c)} "
|
"\s*#{Regexp.escape(c)} "
|
||||||
}.join("|"))
|
}.join("|"))
|
||||||
|
|
||||||
START_MULTI_LINE_COMMENT = Regexp.compile(MULTI_LINE_COMMENTS.map { |c|
|
START_MULTI_LINE_COMMENT = Regexp.compile(MULTI_LINE_COMMENTS.map { |c|
|
||||||
@@ -58,16 +61,16 @@ module Linguist
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Single line comment
|
# Single line comment
|
||||||
elsif token = s.scan(START_SINGLE_LINE_COMMENT)
|
elsif s.beginning_of_line? && token = s.scan(START_SINGLE_LINE_COMMENT)
|
||||||
tokens << token.strip
|
# tokens << token.strip
|
||||||
s.skip_until(/\n|\Z/)
|
s.skip_until(/\n|\Z/)
|
||||||
|
|
||||||
# Multiline comments
|
# Multiline comments
|
||||||
elsif token = s.scan(START_MULTI_LINE_COMMENT)
|
elsif token = s.scan(START_MULTI_LINE_COMMENT)
|
||||||
tokens << token
|
# tokens << token
|
||||||
close_token = MULTI_LINE_COMMENTS.assoc(token)[1]
|
close_token = MULTI_LINE_COMMENTS.assoc(token)[1]
|
||||||
s.skip_until(Regexp.compile(Regexp.escape(close_token)))
|
s.skip_until(Regexp.compile(Regexp.escape(close_token)))
|
||||||
tokens << close_token
|
# tokens << close_token
|
||||||
|
|
||||||
# Skip single or double quoted strings
|
# Skip single or double quoted strings
|
||||||
elsif s.scan(/"/)
|
elsif s.scan(/"/)
|
||||||
|
|||||||
415
samples/C++/qscicommand.h
Normal file
415
samples/C++/qscicommand.h
Normal file
@@ -0,0 +1,415 @@
|
|||||||
|
// This defines the interface to the QsciCommand class.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||||
|
//
|
||||||
|
// This file is part of QScintilla.
|
||||||
|
//
|
||||||
|
// This file may be used under the terms of the GNU General Public
|
||||||
|
// License versions 2.0 or 3.0 as published by the Free Software
|
||||||
|
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
|
||||||
|
// included in the packaging of this file. Alternatively you may (at
|
||||||
|
// your option) use any later version of the GNU General Public
|
||||||
|
// License if such license has been publicly approved by Riverbank
|
||||||
|
// Computing Limited (or its successors, if any) and the KDE Free Qt
|
||||||
|
// Foundation. In addition, as a special exception, Riverbank gives you
|
||||||
|
// certain additional rights. These rights are described in the Riverbank
|
||||||
|
// GPL Exception version 1.1, which can be found in the file
|
||||||
|
// GPL_EXCEPTION.txt in this package.
|
||||||
|
//
|
||||||
|
// If you are unsure which license is appropriate for your use, please
|
||||||
|
// contact the sales department at sales@riverbankcomputing.com.
|
||||||
|
//
|
||||||
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef QSCICOMMAND_H
|
||||||
|
#define QSCICOMMAND_H
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
extern "C++" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <qstring.h>
|
||||||
|
|
||||||
|
#include <Qsci/qsciglobal.h>
|
||||||
|
#include <Qsci/qsciscintillabase.h>
|
||||||
|
|
||||||
|
|
||||||
|
class QsciScintilla;
|
||||||
|
|
||||||
|
|
||||||
|
//! \brief The QsciCommand class represents an internal editor command that may
|
||||||
|
//! have one or two keys bound to it.
|
||||||
|
//!
|
||||||
|
//! Methods are provided to change the keys bound to the command and to remove
|
||||||
|
//! a key binding. Each command has a user friendly description of the command
|
||||||
|
//! for use in key mapping dialogs.
|
||||||
|
class QSCINTILLA_EXPORT QsciCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! This enum defines the different commands that can be assigned to a key.
|
||||||
|
enum Command {
|
||||||
|
//! Move down one line.
|
||||||
|
LineDown = QsciScintillaBase::SCI_LINEDOWN,
|
||||||
|
|
||||||
|
//! Extend the selection down one line.
|
||||||
|
LineDownExtend = QsciScintillaBase::SCI_LINEDOWNEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection down one line.
|
||||||
|
LineDownRectExtend = QsciScintillaBase::SCI_LINEDOWNRECTEXTEND,
|
||||||
|
|
||||||
|
//! Scroll the view down one line.
|
||||||
|
LineScrollDown = QsciScintillaBase::SCI_LINESCROLLDOWN,
|
||||||
|
|
||||||
|
//! Move up one line.
|
||||||
|
LineUp = QsciScintillaBase::SCI_LINEUP,
|
||||||
|
|
||||||
|
//! Extend the selection up one line.
|
||||||
|
LineUpExtend = QsciScintillaBase::SCI_LINEUPEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection up one line.
|
||||||
|
LineUpRectExtend = QsciScintillaBase::SCI_LINEUPRECTEXTEND,
|
||||||
|
|
||||||
|
//! Scroll the view up one line.
|
||||||
|
LineScrollUp = QsciScintillaBase::SCI_LINESCROLLUP,
|
||||||
|
|
||||||
|
//! Scroll to the start of the document.
|
||||||
|
ScrollToStart = QsciScintillaBase::SCI_SCROLLTOSTART,
|
||||||
|
|
||||||
|
//! Scroll to the end of the document.
|
||||||
|
ScrollToEnd = QsciScintillaBase::SCI_SCROLLTOEND,
|
||||||
|
|
||||||
|
//! Scroll vertically to centre the current line.
|
||||||
|
VerticalCentreCaret = QsciScintillaBase::SCI_VERTICALCENTRECARET,
|
||||||
|
|
||||||
|
//! Move down one paragraph.
|
||||||
|
ParaDown = QsciScintillaBase::SCI_PARADOWN,
|
||||||
|
|
||||||
|
//! Extend the selection down one paragraph.
|
||||||
|
ParaDownExtend = QsciScintillaBase::SCI_PARADOWNEXTEND,
|
||||||
|
|
||||||
|
//! Move up one paragraph.
|
||||||
|
ParaUp = QsciScintillaBase::SCI_PARAUP,
|
||||||
|
|
||||||
|
//! Extend the selection up one paragraph.
|
||||||
|
ParaUpExtend = QsciScintillaBase::SCI_PARAUPEXTEND,
|
||||||
|
|
||||||
|
//! Move left one character.
|
||||||
|
CharLeft = QsciScintillaBase::SCI_CHARLEFT,
|
||||||
|
|
||||||
|
//! Extend the selection left one character.
|
||||||
|
CharLeftExtend = QsciScintillaBase::SCI_CHARLEFTEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection left one character.
|
||||||
|
CharLeftRectExtend = QsciScintillaBase::SCI_CHARLEFTRECTEXTEND,
|
||||||
|
|
||||||
|
//! Move right one character.
|
||||||
|
CharRight = QsciScintillaBase::SCI_CHARRIGHT,
|
||||||
|
|
||||||
|
//! Extend the selection right one character.
|
||||||
|
CharRightExtend = QsciScintillaBase::SCI_CHARRIGHTEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection right one character.
|
||||||
|
CharRightRectExtend = QsciScintillaBase::SCI_CHARRIGHTRECTEXTEND,
|
||||||
|
|
||||||
|
//! Move left one word.
|
||||||
|
WordLeft = QsciScintillaBase::SCI_WORDLEFT,
|
||||||
|
|
||||||
|
//! Extend the selection left one word.
|
||||||
|
WordLeftExtend = QsciScintillaBase::SCI_WORDLEFTEXTEND,
|
||||||
|
|
||||||
|
//! Move right one word.
|
||||||
|
WordRight = QsciScintillaBase::SCI_WORDRIGHT,
|
||||||
|
|
||||||
|
//! Extend the selection right one word.
|
||||||
|
WordRightExtend = QsciScintillaBase::SCI_WORDRIGHTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the previous word.
|
||||||
|
WordLeftEnd = QsciScintillaBase::SCI_WORDLEFTEND,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the previous word.
|
||||||
|
WordLeftEndExtend = QsciScintillaBase::SCI_WORDLEFTENDEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the next word.
|
||||||
|
WordRightEnd = QsciScintillaBase::SCI_WORDRIGHTEND,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the next word.
|
||||||
|
WordRightEndExtend = QsciScintillaBase::SCI_WORDRIGHTENDEXTEND,
|
||||||
|
|
||||||
|
//! Move left one word part.
|
||||||
|
WordPartLeft = QsciScintillaBase::SCI_WORDPARTLEFT,
|
||||||
|
|
||||||
|
//! Extend the selection left one word part.
|
||||||
|
WordPartLeftExtend = QsciScintillaBase::SCI_WORDPARTLEFTEXTEND,
|
||||||
|
|
||||||
|
//! Move right one word part.
|
||||||
|
WordPartRight = QsciScintillaBase::SCI_WORDPARTRIGHT,
|
||||||
|
|
||||||
|
//! Extend the selection right one word part.
|
||||||
|
WordPartRightExtend = QsciScintillaBase::SCI_WORDPARTRIGHTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the start of the document line.
|
||||||
|
Home = QsciScintillaBase::SCI_HOME,
|
||||||
|
|
||||||
|
//! Extend the selection to the start of the document line.
|
||||||
|
HomeExtend = QsciScintillaBase::SCI_HOMEEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection to the start of the document line.
|
||||||
|
HomeRectExtend = QsciScintillaBase::SCI_HOMERECTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the start of the displayed line.
|
||||||
|
HomeDisplay = QsciScintillaBase::SCI_HOMEDISPLAY,
|
||||||
|
|
||||||
|
//! Extend the selection to the start of the displayed line.
|
||||||
|
HomeDisplayExtend = QsciScintillaBase::SCI_HOMEDISPLAYEXTEND,
|
||||||
|
|
||||||
|
//! Move to the start of the displayed or document line.
|
||||||
|
HomeWrap = QsciScintillaBase::SCI_HOMEWRAP,
|
||||||
|
|
||||||
|
//! Extend the selection to the start of the displayed or document
|
||||||
|
//! line.
|
||||||
|
HomeWrapExtend = QsciScintillaBase::SCI_HOMEWRAPEXTEND,
|
||||||
|
|
||||||
|
//! Move to the first visible character in the document line.
|
||||||
|
VCHome = QsciScintillaBase::SCI_VCHOME,
|
||||||
|
|
||||||
|
//! Extend the selection to the first visible character in the document
|
||||||
|
//! line.
|
||||||
|
VCHomeExtend = QsciScintillaBase::SCI_VCHOMEEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection to the first visible character in
|
||||||
|
//! the document line.
|
||||||
|
VCHomeRectExtend = QsciScintillaBase::SCI_VCHOMERECTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the first visible character of the displayed or document
|
||||||
|
//! line.
|
||||||
|
VCHomeWrap = QsciScintillaBase::SCI_VCHOMEWRAP,
|
||||||
|
|
||||||
|
//! Extend the selection to the first visible character of the
|
||||||
|
//! displayed or document line.
|
||||||
|
VCHomeWrapExtend = QsciScintillaBase::SCI_VCHOMEWRAPEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the document line.
|
||||||
|
LineEnd = QsciScintillaBase::SCI_LINEEND,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the document line.
|
||||||
|
LineEndExtend = QsciScintillaBase::SCI_LINEENDEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection to the end of the document line.
|
||||||
|
LineEndRectExtend = QsciScintillaBase::SCI_LINEENDRECTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the displayed line.
|
||||||
|
LineEndDisplay = QsciScintillaBase::SCI_LINEENDDISPLAY,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the displayed line.
|
||||||
|
LineEndDisplayExtend = QsciScintillaBase::SCI_LINEENDDISPLAYEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the displayed or document line.
|
||||||
|
LineEndWrap = QsciScintillaBase::SCI_LINEENDWRAP,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the displayed or document line.
|
||||||
|
LineEndWrapExtend = QsciScintillaBase::SCI_LINEENDWRAPEXTEND,
|
||||||
|
|
||||||
|
//! Move to the start of the document.
|
||||||
|
DocumentStart = QsciScintillaBase::SCI_DOCUMENTSTART,
|
||||||
|
|
||||||
|
//! Extend the selection to the start of the document.
|
||||||
|
DocumentStartExtend = QsciScintillaBase::SCI_DOCUMENTSTARTEXTEND,
|
||||||
|
|
||||||
|
//! Move to the end of the document.
|
||||||
|
DocumentEnd = QsciScintillaBase::SCI_DOCUMENTEND,
|
||||||
|
|
||||||
|
//! Extend the selection to the end of the document.
|
||||||
|
DocumentEndExtend = QsciScintillaBase::SCI_DOCUMENTENDEXTEND,
|
||||||
|
|
||||||
|
//! Move up one page.
|
||||||
|
PageUp = QsciScintillaBase::SCI_PAGEUP,
|
||||||
|
|
||||||
|
//! Extend the selection up one page.
|
||||||
|
PageUpExtend = QsciScintillaBase::SCI_PAGEUPEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection up one page.
|
||||||
|
PageUpRectExtend = QsciScintillaBase::SCI_PAGEUPRECTEXTEND,
|
||||||
|
|
||||||
|
//! Move down one page.
|
||||||
|
PageDown = QsciScintillaBase::SCI_PAGEDOWN,
|
||||||
|
|
||||||
|
//! Extend the selection down one page.
|
||||||
|
PageDownExtend = QsciScintillaBase::SCI_PAGEDOWNEXTEND,
|
||||||
|
|
||||||
|
//! Extend the rectangular selection down one page.
|
||||||
|
PageDownRectExtend = QsciScintillaBase::SCI_PAGEDOWNRECTEXTEND,
|
||||||
|
|
||||||
|
//! Stuttered move up one page.
|
||||||
|
StutteredPageUp = QsciScintillaBase::SCI_STUTTEREDPAGEUP,
|
||||||
|
|
||||||
|
//! Stuttered extend the selection up one page.
|
||||||
|
StutteredPageUpExtend = QsciScintillaBase::SCI_STUTTEREDPAGEUPEXTEND,
|
||||||
|
|
||||||
|
//! Stuttered move down one page.
|
||||||
|
StutteredPageDown = QsciScintillaBase::SCI_STUTTEREDPAGEDOWN,
|
||||||
|
|
||||||
|
//! Stuttered extend the selection down one page.
|
||||||
|
StutteredPageDownExtend = QsciScintillaBase::SCI_STUTTEREDPAGEDOWNEXTEND,
|
||||||
|
|
||||||
|
//! Delete the current character.
|
||||||
|
Delete = QsciScintillaBase::SCI_CLEAR,
|
||||||
|
|
||||||
|
//! Delete the previous character.
|
||||||
|
DeleteBack = QsciScintillaBase::SCI_DELETEBACK,
|
||||||
|
|
||||||
|
//! Delete the previous character if not at start of line.
|
||||||
|
DeleteBackNotLine = QsciScintillaBase::SCI_DELETEBACKNOTLINE,
|
||||||
|
|
||||||
|
//! Delete the word to the left.
|
||||||
|
DeleteWordLeft = QsciScintillaBase::SCI_DELWORDLEFT,
|
||||||
|
|
||||||
|
//! Delete the word to the right.
|
||||||
|
DeleteWordRight = QsciScintillaBase::SCI_DELWORDRIGHT,
|
||||||
|
|
||||||
|
//! Delete right to the end of the next word.
|
||||||
|
DeleteWordRightEnd = QsciScintillaBase::SCI_DELWORDRIGHTEND,
|
||||||
|
|
||||||
|
//! Delete the line to the left.
|
||||||
|
DeleteLineLeft = QsciScintillaBase::SCI_DELLINELEFT,
|
||||||
|
|
||||||
|
//! Delete the line to the right.
|
||||||
|
DeleteLineRight = QsciScintillaBase::SCI_DELLINERIGHT,
|
||||||
|
|
||||||
|
//! Delete the current line.
|
||||||
|
LineDelete = QsciScintillaBase::SCI_LINEDELETE,
|
||||||
|
|
||||||
|
//! Cut the current line to the clipboard.
|
||||||
|
LineCut = QsciScintillaBase::SCI_LINECUT,
|
||||||
|
|
||||||
|
//! Copy the current line to the clipboard.
|
||||||
|
LineCopy = QsciScintillaBase::SCI_LINECOPY,
|
||||||
|
|
||||||
|
//! Transpose the current and previous lines.
|
||||||
|
LineTranspose = QsciScintillaBase::SCI_LINETRANSPOSE,
|
||||||
|
|
||||||
|
//! Duplicate the current line.
|
||||||
|
LineDuplicate = QsciScintillaBase::SCI_LINEDUPLICATE,
|
||||||
|
|
||||||
|
//! Select the whole document.
|
||||||
|
SelectAll = QsciScintillaBase::SCI_SELECTALL,
|
||||||
|
|
||||||
|
//! Move the selected lines up one line.
|
||||||
|
MoveSelectedLinesUp = QsciScintillaBase::SCI_MOVESELECTEDLINESUP,
|
||||||
|
|
||||||
|
//! Move the selected lines down one line.
|
||||||
|
MoveSelectedLinesDown = QsciScintillaBase::SCI_MOVESELECTEDLINESDOWN,
|
||||||
|
|
||||||
|
//! Duplicate the selection.
|
||||||
|
SelectionDuplicate = QsciScintillaBase::SCI_SELECTIONDUPLICATE,
|
||||||
|
|
||||||
|
//! Convert the selection to lower case.
|
||||||
|
SelectionLowerCase = QsciScintillaBase::SCI_LOWERCASE,
|
||||||
|
|
||||||
|
//! Convert the selection to upper case.
|
||||||
|
SelectionUpperCase = QsciScintillaBase::SCI_UPPERCASE,
|
||||||
|
|
||||||
|
//! Cut the selection to the clipboard.
|
||||||
|
SelectionCut = QsciScintillaBase::SCI_CUT,
|
||||||
|
|
||||||
|
//! Copy the selection to the clipboard.
|
||||||
|
SelectionCopy = QsciScintillaBase::SCI_COPY,
|
||||||
|
|
||||||
|
//! Paste from the clipboard.
|
||||||
|
Paste = QsciScintillaBase::SCI_PASTE,
|
||||||
|
|
||||||
|
//! Toggle insert/overtype.
|
||||||
|
EditToggleOvertype = QsciScintillaBase::SCI_EDITTOGGLEOVERTYPE,
|
||||||
|
|
||||||
|
//! Insert a platform dependent newline.
|
||||||
|
Newline = QsciScintillaBase::SCI_NEWLINE,
|
||||||
|
|
||||||
|
//! Insert a formfeed.
|
||||||
|
Formfeed = QsciScintillaBase::SCI_FORMFEED,
|
||||||
|
|
||||||
|
//! Indent one level.
|
||||||
|
Tab = QsciScintillaBase::SCI_TAB,
|
||||||
|
|
||||||
|
//! De-indent one level.
|
||||||
|
Backtab = QsciScintillaBase::SCI_BACKTAB,
|
||||||
|
|
||||||
|
//! Cancel any current operation.
|
||||||
|
Cancel = QsciScintillaBase::SCI_CANCEL,
|
||||||
|
|
||||||
|
//! Undo the last command.
|
||||||
|
Undo = QsciScintillaBase::SCI_UNDO,
|
||||||
|
|
||||||
|
//! Redo the last command.
|
||||||
|
Redo = QsciScintillaBase::SCI_REDO,
|
||||||
|
|
||||||
|
//! Zoom in.
|
||||||
|
ZoomIn = QsciScintillaBase::SCI_ZOOMIN,
|
||||||
|
|
||||||
|
//! Zoom out.
|
||||||
|
ZoomOut = QsciScintillaBase::SCI_ZOOMOUT,
|
||||||
|
};
|
||||||
|
|
||||||
|
//! Return the command that will be executed by this instance.
|
||||||
|
Command command() const {return scicmd;}
|
||||||
|
|
||||||
|
//! Execute the command.
|
||||||
|
void execute();
|
||||||
|
|
||||||
|
//! Binds the key \a key to the command. If \a key is 0 then the key
|
||||||
|
//! binding is removed. If \a key is invalid then the key binding is
|
||||||
|
//! unchanged. Valid keys are any visible or control character or any
|
||||||
|
//! of \c Key_Down, \c Key_Up, \c Key_Left, \c Key_Right, \c Key_Home,
|
||||||
|
//! \c Key_End, \c Key_PageUp, \c Key_PageDown, \c Key_Delete,
|
||||||
|
//! \c Key_Insert, \c Key_Escape, \c Key_Backspace, \c Key_Tab and
|
||||||
|
//! \c Key_Return. Keys may be modified with any combination of \c SHIFT,
|
||||||
|
//! \c CTRL, \c ALT and \c META.
|
||||||
|
//!
|
||||||
|
//! \sa key(), setAlternateKey(), validKey()
|
||||||
|
void setKey(int key);
|
||||||
|
|
||||||
|
//! Binds the alternate key \a altkey to the command. If \a key is 0
|
||||||
|
//! then the alternate key binding is removed.
|
||||||
|
//!
|
||||||
|
//! \sa alternateKey(), setKey(), validKey()
|
||||||
|
void setAlternateKey(int altkey);
|
||||||
|
|
||||||
|
//! The key that is currently bound to the command is returned.
|
||||||
|
//!
|
||||||
|
//! \sa setKey(), alternateKey()
|
||||||
|
int key() const {return qkey;}
|
||||||
|
|
||||||
|
//! The alternate key that is currently bound to the command is
|
||||||
|
//! returned.
|
||||||
|
//!
|
||||||
|
//! \sa setAlternateKey(), key()
|
||||||
|
int alternateKey() const {return qaltkey;}
|
||||||
|
|
||||||
|
//! If the key \a key is valid then true is returned.
|
||||||
|
static bool validKey(int key);
|
||||||
|
|
||||||
|
//! The user friendly description of the command is returned.
|
||||||
|
QString description() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class QsciCommandSet;
|
||||||
|
|
||||||
|
QsciCommand(QsciScintilla *qs, Command cmd, int key, int altkey,
|
||||||
|
const char *desc);
|
||||||
|
|
||||||
|
void bindKey(int key,int &qk,int &scik);
|
||||||
|
|
||||||
|
QsciScintilla *qsCmd;
|
||||||
|
Command scicmd;
|
||||||
|
int qkey, scikey, qaltkey, scialtkey;
|
||||||
|
const char *descCmd;
|
||||||
|
|
||||||
|
QsciCommand(const QsciCommand &);
|
||||||
|
QsciCommand &operator=(const QsciCommand &);
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
116
samples/C++/qsciprinter.h
Normal file
116
samples/C++/qsciprinter.h
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
// This module defines interface to the QsciPrinter class.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||||
|
//
|
||||||
|
// This file is part of QScintilla.
|
||||||
|
//
|
||||||
|
// This file may be used under the terms of the GNU General Public
|
||||||
|
// License versions 2.0 or 3.0 as published by the Free Software
|
||||||
|
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
|
||||||
|
// included in the packaging of this file. Alternatively you may (at
|
||||||
|
// your option) use any later version of the GNU General Public
|
||||||
|
// License if such license has been publicly approved by Riverbank
|
||||||
|
// Computing Limited (or its successors, if any) and the KDE Free Qt
|
||||||
|
// Foundation. In addition, as a special exception, Riverbank gives you
|
||||||
|
// certain additional rights. These rights are described in the Riverbank
|
||||||
|
// GPL Exception version 1.1, which can be found in the file
|
||||||
|
// GPL_EXCEPTION.txt in this package.
|
||||||
|
//
|
||||||
|
// If you are unsure which license is appropriate for your use, please
|
||||||
|
// contact the sales department at sales@riverbankcomputing.com.
|
||||||
|
//
|
||||||
|
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||||
|
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef QSCIPRINTER_H
|
||||||
|
#define QSCIPRINTER_H
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
extern "C++" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <qprinter.h>
|
||||||
|
|
||||||
|
#include <Qsci/qsciglobal.h>
|
||||||
|
#include <Qsci/qsciscintilla.h>
|
||||||
|
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
class QRect;
|
||||||
|
class QPainter;
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class QsciScintillaBase;
|
||||||
|
|
||||||
|
|
||||||
|
//! \brief The QsciPrinter class is a sub-class of the Qt QPrinter class that
|
||||||
|
//! is able to print the text of a Scintilla document.
|
||||||
|
//!
|
||||||
|
//! The class can be further sub-classed to alter to layout of the text, adding
|
||||||
|
//! headers and footers for example.
|
||||||
|
class QSCINTILLA_EXPORT QsciPrinter : public QPrinter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//! Constructs a printer paint device with mode \a mode.
|
||||||
|
QsciPrinter(PrinterMode mode = ScreenResolution);
|
||||||
|
|
||||||
|
//! Destroys the QsciPrinter instance.
|
||||||
|
virtual ~QsciPrinter();
|
||||||
|
|
||||||
|
//! Format a page, by adding headers and footers for example, before the
|
||||||
|
//! document text is drawn on it. \a painter is the painter to be used to
|
||||||
|
//! add customised text and graphics. \a drawing is true if the page is
|
||||||
|
//! actually being drawn rather than being sized. \a painter drawing
|
||||||
|
//! methods must only be called when \a drawing is true. \a area is the
|
||||||
|
//! area of the page that will be used to draw the text. This should be
|
||||||
|
//! modified if it is necessary to reserve space for any customised text or
|
||||||
|
//! graphics. By default the area is relative to the printable area of the
|
||||||
|
//! page. Use QPrinter::setFullPage() because calling printRange() if you
|
||||||
|
//! want to try and print over the whole page. \a pagenr is the number of
|
||||||
|
//! the page. The first page is numbered 1.
|
||||||
|
virtual void formatPage(QPainter &painter, bool drawing, QRect &area,
|
||||||
|
int pagenr);
|
||||||
|
|
||||||
|
//! Return the number of points to add to each font when printing.
|
||||||
|
//!
|
||||||
|
//! \sa setMagnification()
|
||||||
|
int magnification() const {return mag;}
|
||||||
|
|
||||||
|
//! Sets the number of points to add to each font when printing to \a
|
||||||
|
//! magnification.
|
||||||
|
//!
|
||||||
|
//! \sa magnification()
|
||||||
|
virtual void setMagnification(int magnification);
|
||||||
|
|
||||||
|
//! Print a range of lines from the Scintilla instance \a qsb. \a from is
|
||||||
|
//! the first line to print and a negative value signifies the first line
|
||||||
|
//! of text. \a to is the last line to print and a negative value
|
||||||
|
//! signifies the last line of text. true is returned if there was no
|
||||||
|
//! error.
|
||||||
|
virtual int printRange(QsciScintillaBase *qsb, int from = -1, int to = -1);
|
||||||
|
|
||||||
|
//! Return the line wrap mode used when printing. The default is
|
||||||
|
//! QsciScintilla::WrapWord.
|
||||||
|
//!
|
||||||
|
//! \sa setWrapMode()
|
||||||
|
QsciScintilla::WrapMode wrapMode() const {return wrap;}
|
||||||
|
|
||||||
|
//! Sets the line wrap mode used when printing to \a wmode.
|
||||||
|
//!
|
||||||
|
//! \sa wrapMode()
|
||||||
|
virtual void setWrapMode(QsciScintilla::WrapMode wmode);
|
||||||
|
|
||||||
|
private:
|
||||||
|
int mag;
|
||||||
|
QsciScintilla::WrapMode wrap;
|
||||||
|
|
||||||
|
QsciPrinter(const QsciPrinter &);
|
||||||
|
QsciPrinter &operator=(const QsciPrinter &);
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -34,15 +34,15 @@ class TestTokenizer < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_skip_comments
|
def test_skip_comments
|
||||||
assert_equal %w(foo #), tokenize("foo\n# Comment")
|
assert_equal %w(foo), tokenize("foo\n# Comment")
|
||||||
assert_equal %w(foo # bar), tokenize("foo\n# Comment\nbar")
|
assert_equal %w(foo bar), tokenize("foo\n# Comment\nbar")
|
||||||
assert_equal %w(foo //), tokenize("foo\n// Comment")
|
assert_equal %w(foo), tokenize("foo\n// Comment")
|
||||||
assert_equal %w(foo /* */), tokenize("foo /* Comment */")
|
assert_equal %w(foo), tokenize("foo /* Comment */")
|
||||||
assert_equal %w(foo /* */), tokenize("foo /* \nComment\n */")
|
assert_equal %w(foo), tokenize("foo /* \nComment\n */")
|
||||||
assert_equal %w(foo <!-- -->), tokenize("foo <!-- Comment -->")
|
assert_equal %w(foo), tokenize("foo <!-- Comment -->")
|
||||||
assert_equal %w(foo {- -}), tokenize("foo {- Comment -}")
|
assert_equal %w(foo), tokenize("foo {- Comment -}")
|
||||||
assert_equal %w(foo \(* *\)), tokenize("foo (* Comment *)")
|
assert_equal %w(foo), tokenize("foo (* Comment *)")
|
||||||
assert_equal %w(% %), tokenize("2 % 10\n% Comment")
|
assert_equal %w(%), tokenize("2 % 10\n% Comment")
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_sgml_tags
|
def test_sgml_tags
|
||||||
|
|||||||
Reference in New Issue
Block a user