From: flywithp <ffp...@gm...> - 2011-04-16 12:56:05
|
Hi, I'm using Win32::GUI::Scintilla package for my text editor and highlighting multiple words (with whitespace), like this ; "This is a test" chars and whitespace highlighting but this code, not highlighting whitespace chars. How do i do this? "This is a test" (with whitespace highlight) Thank you, Regards... here is my codes; # perl -v use strict; use Win32::GUI; use Win32::GUI::Scintilla; my %faces = ( 'times' => 'Times New Roman', 'mono' => 'Courier New', 'helv' => 'Lucida Console', 'lucida' => 'Lucida Console', 'other' => 'Comic Sans MS', 'size' => '10', 'size2' => '9', 'backcol'=> '#FFFFFF', 'backcolorhight' => '#28C50F', ); my $KEYWORD = q{ this is a test}; # main Window my $Window = new Win32::GUI::Window ( -name => "Window", -title => "Perl Editor", -pos => [100, 100], -size => [400, 400], ) or die "new Window"; my $Editor = $Window->AddScintilla ( -name => "Editor", -pos => [0, 0], -size => [400, 400], -addexstyle => WS_EX_CLIENTEDGE, ) or die "new Edit"; # Init editor Editor(); # Event loop $Window->Show(); Win32::GUI::Dialog(); sub Editor { #perl lexer $Editor->SetLexer(Win32::GUI::Scintilla::SCLEX_PERL); # Set Perl Keyword $Editor->SetKeyWords(0, $KEYWORD); # Win32::GUI::Scintilla::KEYWORDSET_MAX # $Editor->SetKeyWords(0, $D); $Editor->SetProperty("fold", "1"); $Editor->SetProperty("tab.timmy.whinge.level", "1"); # Indenetation $Editor->SetIndentationGuides(1); $Editor->SetUseTabs(1); $Editor->SetTabWidth(3); $Editor->SetIndent(3); # Edge Mode $Editor->SetEdgeMode(Win32::GUI::Scintilla::EDGE_LINE); # $Editor->SetEdgeMode(Win32::GUI::Scintilla::EDGE_BACKGROUND); $Editor->SetEdgeColumn(0); $Editor->SetEdgeColour('00ff00'); $Editor->SetMarginTypeN(1, Win32::GUI::Scintilla::SC_MARGIN_NUMBER); $Editor->SetMarginWidthN(1, 25); $Editor->SetFoldMarginColour(1, '00E5FF'); $Editor->SetMarginTypeN(2, Win32::GUI::Scintilla::SC_MARGIN_SYMBOL); $Editor->SetFoldMarginColour(2, '00E5FF'); $Editor->SetMarginMaskN(2, Win32::GUI::Scintilla::SC_MASK_FOLDERS); $Editor->SetMarginSensitiveN(2, 1); $Editor->SetMarginWidthN(2, 12); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEREND, Win32::GUI::Scintilla::SC_MARK_BOXPLUSCONNECTED); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEREND, '#00FFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEREND, '#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPENMID, Win32::GUI::Scintilla::SC_MARK_BOXMINUSCONNECTED); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPENMID,'#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPENMID,'#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERMIDTAIL, Win32::GUI::Scintilla::SC_MARK_TCORNER); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERMIDTAIL,'#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERMIDTAIL,'#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERTAIL, Win32::GUI::Scintilla::SC_MARK_LCORNER); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERTAIL, '#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERTAIL, '#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERSUB, Win32::GUI::Scintilla::SC_MARK_VLINE); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERSUB, '#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDERSUB, '#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDER, Win32::GUI::Scintilla::SC_MARK_BOXPLUS); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDER, '#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDER, '#000000'); $Editor->MarkerDefine(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPEN, Win32::GUI::Scintilla::SC_MARK_BOXMINUS); $Editor->MarkerSetFore(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPEN,'#FFFFFF'); $Editor->MarkerSetBack(Win32::GUI::Scintilla::SC_MARKNUM_FOLDEROPEN,'#000000'); # Define Style $Editor->StyleClearAll(); # Global default styles for all languages $Editor->StyleSetSpec(Win32::GUI::Scintilla::STYLE_DEFAULT, "face:$faces{'mono'},size:$faces{'size'}"); $Editor->StyleSetSpec(Win32::GUI::Scintilla::STYLE_LINENUMBER, "back:#CCFF00,fore:#FF00FF,face:$faces{mono},bold"); $Editor->StyleSetSpec(Win32::GUI::Scintilla::STYLE_CONTROLCHAR, "face:$faces{mono}"); $Editor->StyleSetSpec(Win32::GUI::Scintilla::STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold"); $Editor->StyleSetSpec(Win32::GUI::Scintilla::STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold"); # White space # $Editor->StyleSetSpec (Win32::GUI::Scintilla::SCE_PL_DEFAULT, "back:$faces{'backcolorhight'},fore:#B3FF00,bold,size:$faces{'size2'}"); $Editor->StyleSetSpec (Win32::GUI::Scintilla::SCE_PL_WORD , "underline,size:$faces{'size2'}");# "back:$faces{'backcolorhight'},fore:#B3FF00,bold,size:$faces{'size2'}" } # Main window event handler sub Window_Terminate {-1} sub Window_Resize { if (defined $Window) { my ($width, $height) = ($Window->GetClientRect)[2..3]; $Editor->Move (0, 0); $Editor->Resize ($width, $height); } } -- View this message in context: http://old.nabble.com/How-to-highlight-mutliple-words-%28with-whitespace%29----Win32%3A%3AGUI%3A%3AScintilla--tp31412939p31412939.html Sent from the perl-win32-gui-users mailing list archive at Nabble.com. |