1

Тема: OFF: Обсудим цвета и шрифты в GESHI для AHK

Предлагаю такую схему:

1. Команды (SendMessage, GuiControl, Return и т. д.)
    цвет — #4466EE, шрифт — bold

2. Встроенные переменные (A_GuiWidth, A_Index, A_ThisFunc и т. д.)
    цвет — #CF00CF, шрифт — italic

3. Встроенные функции (ACos, OnMessage, LV_Add и т. д.)
    цвет — #FF4400, шрифт — bold, italic

4. Строки ("текст в кавычках")
    цвет — #008080, шрифт — bold

5. Цифры (1234567890)
    цвет — #000070

6. Контролы в GUI (Text, Button, Picture)
    цвет — #A0A000

7. Команды в GUI (Add, Show, Submit)
    цвет — #0066EE

8. Директивы (#Persistent, #NoEnv, #SingleInstance)
    цвет — #F04020, шрифт — bold, italic

9. Названия клавиш (PrintScreen, F1, Shift)
    цвет — #F050A0, шрифт — bold

10. Комментарии
    /*
    комментарий
    */

    цвет — #669900, шрифт — italic

11. Скобки ({} () [])
    цвет — #FF4400, шрифт — bold

Ваши предложения, дополнения?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

2

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Однако выскажусь. Смысл подсветки не только в том чтобы сделать красивую новогоднюю елку из кода, но и чтобы все однотипные части кода любого языка выглядели одинаково во всех языках программирования. AHK - не моя тема. Но если я буду читать подцвеченный код, то мозг будет фиксировать знакомые конструкции языка, знакомые из известных мне языков. И будет это происходить за счет подсветки. А это дополнительный плюс в понимании языка. Не надо менять только в одном языке. Или меняйте во всех. Вывод - верните назад.

( 2 * b ) || ! ( 2 * b )

3

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Rumata пишет:

…но и чтобы все однотипные части кода любого языка выглядели одинаково во всех языках программирования.

Зачем? Парадигмы языков могут быть абсолютно разными. «Shift» в AHK, и «Shift» в CMD — вовсе разные вещи.

4

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

teadrinker
По-моему, нормально. Но надо время, чтобы посмотреть на это в реальных кодах, тогда, возможно, появятся замечания. Я вообще сомневаюсь, нужна ли подсветка. Разве что другой цвет для комментариев, как это сделано на autohotkey.com.

Rumata пишет:

AHK - не моя тема. Но если я буду читать подцвеченный код, то мозг будет фиксировать знакомые конструкции языка, знакомые из известных мне языков.

Ну да. Куча народу дожна ломать глаза из-за гипотетической возможности, что Вы когда-то, может быть, чем чёрт не шутит, заглянете в код на АНК.

5

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Почему-то не использованы чёрный, полужирный чёрный, полужирный чёрный курсив.

"Комментарии" сделать менее жёлтыми, более зелёными.

"Контролы в GUI" сделать в стиле "Команды в GUI" (цвет — #0066EE)

"Команды в GUI" сделать в стиле "Команды" (цвет — #4466EE, шрифт — bold)

"Команды" сделать в стиле чёрный полужирный  (цвет — #000000, шрифт — bold)

6

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii
YMP
Смысл не в том чтобы одинаковые слова "горели" одинаково. Однотипная подсветка в разных языках в любом случае упрощает чтение. На форуме используются языки "идеологически близкие" за исключением XML, HTML и, возможно, ассемблера. В большинстве языков есть зарезервированные слова, комментарии, константы, переменные. Именно они в редакторах расцвечены одинаково. Об этом я и веду речь.
Возможно я ошибаюсь, но сейчас видится, что текст AHK, содержащий большинство пунктов из первого поста, будет расцвечен как елка.

( 2 * b ) || ! ( 2 * b )

7

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Rumata пишет:

Смысл подсветки не только в том чтобы сделать красивую новогоднюю елку из кода, но и чтобы все однотипные части кода любого языка выглядели одинаково во всех языках программирования. AHK - не моя тема. Но если я буду читать подцвеченный код, то мозг будет фиксировать знакомые конструкции языка, знакомые из известных мне языков. И будет это происходить за счет подсветки. ... Вывод - верните назад.

Ну, во-первых, возвращать пока что неоткуда — это всего лишь вариант, сейчас подсветка остаётся прежней. Я не знал о том, что существует какая-то "традиционная" подсветка, общая для многих языков. Если это так, то почему бы это не использовать, только тогда приведи здесь конкретный пример, на основании которого можно проследить общность подсветки в AHK и каком-либо другом языке.
Вообще задачей было не "сделать красивую новогоднюю елку из кода", а сделать подсветку более читабельной. Вот например:

Loop, parse, string
{
   Var .= A_LoopField . A_Index
}

Встроенные переменные A_LoopField, A_Index возможно и раскрашены в "традиционный" цвет, но на сером фоне читаются плохо, а зелёные скобки имеют белый кант по правому краю (может, это только у меня на мониторе?).

ypppu пишет:

Почему-то не использованы чёрный, полужирный чёрный, полужирный чёрный курсив.

Да, согласен, для понижения "ёлочности" можно добавить чёрного. Но я не понял, что значит "полужирный"? По-моему, есть только bold, поправь меня, если я ошибаюсь.

ypppu пишет:

"Команды" сделать в стиле чёрный полужирный  (цвет — #000000, шрифт — bold)

Тут не соглашусь, по очень простой причине — чёрный bold слишком навязчив, будет выбиваться из текста и резать глаз. Команды "традиционно" (в смысле, во всех вариантах, которые я видел) фуксиевые, я их изменил, чтобы отличались от команд в GUI. Можно команды GUI оставить, как есть:

Gui, Add, Button
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

зелёные скобки имеют белый кант по правому краю (может, это только у меня на мониторе?

ЖК монитор? Меня достал этот эффект, когда рисовал маленькие рисунки (как бы более яркие оттенки сползают на полпикселя вправо).

чёрный bold слишком навязчив

А разве это плохо, когда основные команды выделяются? Если прямо-таки режет глаза, можно сделать посерее: пример - имена пользователей на главной странице форума. Да, и желательно больше нигде чёрный цвет не использовать.

Насчёт bold - не знаю как правильно, слышал несколько раз, как в технической документации его называли полужирным.

9

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

teadrinker
Мне понятен Ваш посыл - светлые тона на светло-сером фоне действительно выглядят ядовито и это надо исправлять. Тогда надо проверить это для всех поддерживаемых на форуме языков. Конечно же нет единого правила подсветки языковых структур. Полагаю, что многие из нас работали в различных редакторах (например, Notepad++, Far colorer) и тем более IDE (например, Eclipse), поддерживающих подсветку кода. Или читали подсвеченные коды на страницах различных сайтов (самые известные скрипты - GESHI, SyntaxHighlighter). В рамках одного редактора или скрипта подсветки кода существуют общие шаблоны подсветки (например, белый для зарезервированных слов и встроенных функций или желтый для строковых констант в Far colorer).

Я помню, как на одном из форумов внедрялся именно GESHI, как серверный скрипт. Я сам тестировал SyntaxHighlighter как клиентский вариант (он полностью написан на javascript). Как я понял, в первом любой язык может быть "перекрашен" индивидуально. И я знаю, что расцветку во втором можно менять сменой шаблонов.

( 2 * b ) || ! ( 2 * b )

10

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Насчёт Colorer: «это не есть факт, мсье Дюк». Там достаточно предустановленных схем, и ничто не мешает создать свою собственную под свою расцветку Far Manager'a. Я, скажем, пользую свою расцветку Far Manager'a и свою расцветку Colorer'a.

Точно так же и здесь — если я пользую, допустим,  цветовую схему Cobalt или Mercury — я вижу вместо «ядовитого» цвета вполне нормальный и отчётливо различимый цвет. А вот серые и чёрные тона будут плохо, або вовсе не различимы.

Разница в том, что там я могу поправить под себя, как нужно. Здесь же — а) придётся пользоваться тем, что дают; б) теряю возможность пользовать цветовые темы оформления форума.

11

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii пишет:

б) теряю возможность пользовать цветовые темы оформления форума.

Да, я об этом как-то и не подумал, сам постоянно использую тему Oxygen, которая по умолчанию. А кто что думает по этому поводу, что, вообще от подсветки отказаться? И многие ли пользуются другими визуальными стилями?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Нет, я это привёл скорее к тому, что ориентироваться на раскраску различных IDE, равно как и раскраску Colorer и прочее — особо не стоит.

13

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

В раскрасках в IDE и прочих редакторах учитываются оба цвета - foreground и background. Вы меняете только foreground, для текущего background. Может стоит почитать в документации о возможности подключения нескольких стилей и привязать их на серверной стороне к соответствующим стилям форума?

( 2 * b ) || ! ( 2 * b )

14

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Вот файл ahk.php, управляющий подсветкой AHK (блин, в одну строку! Это нормально?!), правкой которого я собираюсь заниматься:

'AutoHotKey', 'COMMENT_SINGLE' => array( 1 => ';' ), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( 'while','if','and','or','else','return' ), 2 => array( // built in variables 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', 'A_Language','A_LastError','A_LineFile','A_LineNumber', 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', 'A_LoopRegType','A_MDAY','A_Min','A_MM', 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', 'A_YEAR','A_YWeek','A_YYYY','Clipboard', 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles', ), 3 => array( 'AutoTrim', 'BlockInput','Break','Click', 'ClipWait','Continue','Control', 'ControlClick','ControlFocus','ControlGet', 'ControlGetFocus','ControlGetPos','ControlGetText', 'ControlMove','ControlSend','ControlSendRaw', 'ControlSetText','CoordMode','Critical', 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', 'DriveGet','DriveSpaceFree', 'Else','EnvAdd','EnvDiv', 'EnvGet','EnvMult','EnvSet', 'EnvSub','EnvUpdate','Exit', 'ExitApp','FileAppend','FileCopy', 'FileCopyDir','FileCreateDir','FileCreateShortcut', 'FileDelete','FileGetAttrib','FileGetShortcut', 'FileGetSize','FileGetTime','FileGetVersion', 'FileInstall','FileMove','FileMoveDir', 'FileRead','FileReadLine','FileRecycle', 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', 'FileSelectFolder','FileSetAttrib','FileSetTime', 'FormatTime','Gosub', 'Goto','GroupActivate','GroupAdd', 'GroupClose','GroupDeactivate','Gui', 'GuiControl','GuiControlGet','Hotkey', 'IfExist','IfGreater','IfGreaterOrEqual', 'IfInString','IfLess','IfLessOrEqual', 'IfMsgBox','IfNotEqual','IfNotExist', 'IfNotInString','IfWinActive','IfWinExist', 'IfWinNotActive','IfWinNotExist','ImageSearch', 'IniDelete','IniRead','IniWrite', 'Input','InputBox','KeyHistory', 'KeyWait','ListHotkeys','ListLines', 'ListVars','Loop', 'Menu','MouseClick','MouseClickDrag', 'MouseGetPos','MouseMove','MsgBox', 'OnMessage','OnExit','OutputDebug', 'PixelGetColor','PixelSearch','PostMessage', 'Process','Progress','Random', 'RegExMatch','RegExReplace','RegisterCallback', 'RegDelete','RegRead','RegWrite', 'Reload','Repeat','Return', 'Run','RunAs','RunWait', 'Send','SendEvent','SendInput', 'SendMessage','SendMode','SendPlay', 'SendRaw','SetBatchLines','SetCapslockState', 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', 'SetFormat','SetKeyDelay','SetMouseDelay', 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', 'SetTimer','SetTitleMatchMode','SetWinDelay', 'SetWorkingDir','Shutdown','Sleep', 'Sort','SoundBeep','SoundGet', 'SoundGetWaveVolume','SoundPlay','SoundSet', 'SoundSetWaveVolume','SplashImage','SplashTextOff', 'SplashTextOn','SplitPath','StatusBarGetText', 'StatusBarWait','StringCaseSense','StringGetPos', 'StringLeft','StringLen','StringLower', 'StringMid','StringReplace','StringRight', 'StringSplit','StringTrimLeft','StringTrimRight', 'StringUpper','Suspend','SysGet', 'Thread','ToolTip','Transform', 'TrayTip','URLDownloadToFile','While', 'VarSetCapacity', 'WinActivate','WinActivateBottom','WinClose', 'WinGet','WinGetActiveStats','WinGetActiveTitle', 'WinGetClass','WinGetPos','WinGetText', 'WinGetTitle','WinHide','WinKill', 'WinMaximize','WinMenuSelectItem','WinMinimize', 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', 'WinRestore','WinSet','WinSetTitle', 'WinShow','WinWait','WinWaitActive', 'WinWaitClose','WinWaitNotActive' ), 4 => array( 'Abs','ACos','Asc','ASin', 'ATan','Ceil','Chr','Cos', 'Exp','FileExist','Floor', 'GetKeyState','IL_Add','IL_Create','IL_Destroy', 'InStr','IsFunc','IsLabel','Ln', 'Log','LV_Add','LV_Delete','LV_DeleteCol', 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList', 'Mod','NumGet','NumPut', 'Round', 'SB_SetIcon','SB_SetParts','SB_SetText','Sin', 'Sqrt','StrLen','SubStr','Tan', 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev', 'TV_GetSelection','TV_GetText','TV_Modify', 'WinActive','WinExist' ), 5 => array( // #Directives 'AllowSameLineComments','ClipboardTimeout','CommentFlag', 'ErrorStdOut','EscapeChar','HotkeyInterval', 'HotkeyModifierTimeout','Hotstring','IfWinActive', 'IfWinExist','IfWinNotActive','IfWinNotExist', 'Include','IncludeAgain','InstallKeybdHook', 'InstallMouseHook','KeyHistory','LTrim', 'MaxHotkeysPerInterval','MaxMem','MaxThreads', 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', 'NoTrayIcon','Persistent','SingleInstance', 'UseHook','WinActivateForce' ), 6 => array( 'Shift','LShift','RShift', 'Alt','LAlt','RAlt', 'LControl','RControl', 'Ctrl','LCtrl','RCtrl', 'LWin','RWin','AppsKey', 'AltDown','AltUp','ShiftDown', 'ShiftUp','CtrlDown','CtrlUp', 'LWinDown','LWinUp','RWinDown', 'RWinUp','LButton','RButton', 'MButton','WheelUp','WheelDown', 'WheelLeft','WheelRight','XButton1', 'XButton2','Joy1','Joy2', 'Joy3','Joy4','Joy5', 'Joy6','Joy7','Joy8', 'Joy9','Joy10','Joy11', 'Joy12','Joy13','Joy14', 'Joy15','Joy16','Joy17', 'Joy18','Joy19','Joy20', 'Joy21','Joy22','Joy23', 'Joy24','Joy25','Joy26', 'Joy27','Joy28','Joy29', 'Joy30','Joy31','Joy32', 'JoyX','JoyY','JoyZ', 'JoyR','JoyU','JoyV', 'JoyPOV','JoyName','JoyButtons', 'JoyAxes','JoyInfo','Space', 'Tab','Enter', 'Escape','Esc','BackSpace', 'BS','Delete','Del', 'Insert','Ins','PGUP', 'PGDN','Home','End', 'Up','Down','Left', 'Right','PrintScreen','CtrlBreak', 'Pause','ScrollLock','CapsLock', 'NumLock','Numpad0','Numpad1', 'Numpad2','Numpad3','Numpad4', 'Numpad5','Numpad6','Numpad7', 'Numpad8','Numpad9','NumpadMult', 'NumpadAdd','NumpadSub','NumpadDiv', 'NumpadDot','NumpadDel','NumpadIns', 'NumpadClear','NumpadUp','NumpadDown', 'NumpadLeft','NumpadRight','NumpadHome', 'NumpadEnd','NumpadPgup','NumpadPgdn', 'NumpadEnter','F1','F2', 'F3','F4','F5', 'F6','F7','F8', 'F9','F10','F11', 'F12','F13','F14', 'F15','F16','F17', 'F18','F19','F20', 'F21','F22','F23', 'F24','Browser_Back','Browser_Forward', 'Browser_Refresh','Browser_Stop','Browser_Search', 'Browser_Favorites','Browser_Home','Volume_Mute', 'Volume_Down','Volume_Up','Media_Next', 'Media_Prev','Media_Stop','Media_Play_Pause', 'Launch_Mail','Launch_Media','Launch_App1', 'Launch_App2' ), 7 => array( // Gui commands 'Add', 'Show', 'Submit', 'Cancel', 'Destroy', 'Font', 'Color', 'Margin', 'Flash', 'Default', 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop', ), 8 => array( // Gui Controls 'Button', 'Checkbox','Radio','DropDownList','DDL', 'ComboBox','ListBox','ListView', 'Text', 'Edit', 'UpDown', 'Picture', 'TreeView','DateTime', 'MonthCal', 'Slider' ) ), 'SYMBOLS' => array( '(',')','[',']', '+','-','*','/','&','^', '=','+=','-=','*=','/=','&=', '==','<','<=','>','>=',':=', ',','.' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false, 4 => false, 5 => false, 6 => false, 7 => false, 8 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue 2 => 'color: #88FF88;', // BIV yellow 3 => 'color: #FF00FF; font-style: italic;', // commands purple 4 => 'color: #888844; font-weight: bold;', // functions #0080FF 5 => 'color: #000000; font-style: italic;', // directives #black 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red 7 => 'color: #000000; font-style: italic;', // gui commands #black 8 => 'color: #000000; font-style: italic;' // gui controls ), 'COMMENTS' => array( 'MULTI' => 'font-style: italic; color: #669900;', 1 => 'font-style: italic; color: #009933;' ), 'ESCAPE_CHAR' => array( 0 => '' ), 'BRACKETS' => array( 0 => 'color: #00FF00; font-weight: bold;' ), 'STRINGS' => array( 0 => 'font-weight: bold; color: #008080;' ), 'NUMBERS' => array( 0 => 'color: #0000dd;' ), 'METHODS' => array( 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' ), 'SYMBOLS' => array( 0 => 'color: #000000; font-weight: italic;' ), 'REGEXPS' => array( 0 => 'font-weight: italic; color: #A00A0;', 1 => 'color: #CC0000; font-style: italic;', 2 => 'color: #DD0000; font-style: italic;', 3 => 'color: #88FF88;' ), 'SCRIPT' => array( ) ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( 1 => '_' ), 'REGEXPS' => array( //Variables 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', //hotstrings 1 => '::[\w\d]+::', //labels 2 => '\w[\w\d]+:\s', //Built-in Variables 3 => '\bA_\w+\b(?![^<]*>)' ), 'URLS' => array( 1 => '', 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn', 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', 6 => '', 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' ), 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, 1 => true, 2 => true, 3 => true ), 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 5 => array( 'DISALLOWED_BEFORE' => '(?

Параметров, отвечающих за background и foreground я там не обнаружил. Кто на PHP программирует, может, их можно вставить?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Доработал GESHI под разные стили этого форума.

Если в папке geshi есть подпапка с названием стиля и файл подсветки для конкретного языка, то будет использован именно он, в противном случае файл из корня (т.е. папка geshi)

16

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Ещё один момент хотелось бы обсудить. Сейчас команды набираются курсивом (он, видимо, олицетворяет действие):

GuiControl
SendInput
MsgBox

Сохранить ли это? И если да, то красиво ли будет выглядеть Italic Bold:

GuiControl
SendInput
MsgBox

Ещё варианты:

GuiControl
SendInput
MsgBox

GuiControl
SendInput
MsgBox

GuiControl
SendInput
MsgBox

GuiControl
SendInput
MsgBox

Как лучше?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

А для 1С нет где-нибудь такой раскраски?

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

18

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

А бывают команды, которые не олицетворяют действие?

19

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Нет, не бывают. Но есть слова, которые не являются командами и не содержат никакого действия, названия контролов, например.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

20

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

atomix, отправил тебе ahk.php на почту.

Изменил только плохо видимый зелёный на оранжевый и исправил некоторые ссылки.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Все вопросы По заливке файлов к alexii , он теперь главный на ресурсе
To alexii единственно проверяй все файлы на вирусы и трояны

22

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii, вот новый файл:

'AutoHotKey', 'COMMENT_SINGLE' => array( 1 => ';' ), 'COMMENT_MULTI' => array('/*' => '*/'), 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 'QUOTEMARKS' => array('"'), 'ESCAPE_CHAR' => '', 'KEYWORDS' => array( 1 => array( 'if','and','or','LTrim','Join' ), 2 => array( // built in variables 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', 'A_Language','A_LastError','A_LineFile','A_LineNumber', 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', 'A_LoopRegType','A_MDAY','A_Min','A_MM', 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', 'A_YEAR','A_YWeek','A_YYYY','Clipboard', 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles','A_IsUnicode' ), 3 => array( 'AutoTrim', 'BlockInput','Break','Click', 'ClipWait','Continue','Control', 'ControlClick','ControlFocus','ControlGet', 'ControlGetFocus','ControlGetPos','ControlGetText', 'ControlMove','ControlSend','ControlSendRaw', 'ControlSetText','CoordMode','Critical', 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', 'DriveGet','DriveSpaceFree', 'Else','EnvAdd','EnvDiv', 'EnvGet','EnvMult','EnvSet', 'EnvSub','EnvUpdate','Exit', 'ExitApp','FileAppend','FileCopy', 'FileCopyDir','FileCreateDir','FileCreateShortcut', 'FileDelete','FileGetAttrib','FileGetShortcut', 'FileGetSize','FileGetTime','FileGetVersion', 'FileInstall','FileMove','FileMoveDir', 'FileRead','FileReadLine','FileRecycle', 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', 'FileSelectFolder','FileSetAttrib','FileSetTime', 'FormatTime','Gosub', 'Goto','GroupActivate','GroupAdd', 'GroupClose','GroupDeactivate','Gui', 'GuiControl','GuiControlGet','Hotkey', 'IfExist','IfGreater','IfGreaterOrEqual', 'IfInString','IfLess','IfLessOrEqual', 'IfMsgBox','IfEqual','IfNotEqual','IfNotExist', 'IfNotInString','IfWinActive','IfWinExist', 'IfWinNotActive','IfWinNotExist','ImageSearch', 'IniDelete','IniRead','IniWrite', 'Input','InputBox','KeyHistory', 'KeyWait','ListHotkeys','ListLines', 'ListVars','Loop', 'Menu','MouseClick','MouseClickDrag', 'MouseGetPos','MouseMove','MsgBox', 'OnExit','OutputDebug', 'PixelGetColor','PixelSearch','PostMessage', 'Process','Progress','Random',  'RegDelete','RegRead','RegWrite', 'Reload','Repeat','Return', 'Run','RunAs','RunWait', 'Send','SendEvent','SendInput', 'SendMessage','SendMode','SendPlay', 'SendRaw','SetBatchLines','SetCapslockState', 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', 'SetFormat','SetKeyDelay','SetMouseDelay', 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', 'SetTimer','SetTitleMatchMode','SetWinDelay', 'SetWorkingDir','Shutdown','Sleep', 'Sort','SoundBeep','SoundGet', 'SoundGetWaveVolume','SoundPlay','SoundSet', 'SoundSetWaveVolume','SplashImage','SplashTextOff', 'SplashTextOn','SplitPath','StatusBarGetText', 'StatusBarWait','StringCaseSense','StringGetPos', 'StringLeft','StringLen','StringLower', 'StringMid','StringReplace','StringRight', 'StringSplit','StringTrimLeft','StringTrimRight', 'StringUpper','Suspend','SysGet', 'Thread','ToolTip','Transform', 'TrayTip','URLDownloadToFile','While', 'WinActivate','WinActivateBottom','WinClose', 'WinGet','WinGetActiveStats','WinGetActiveTitle', 'WinGetClass','WinGetPos','WinGetText', 'WinGetTitle','WinHide','WinKill', 'WinMaximize','WinMenuSelectItem','WinMinimize', 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', 'WinRestore','WinSet','WinSetTitle', 'WinShow','WinWait','WinWaitActive', 'WinWaitClose','WinWaitNotActive' ), 4 => array( 'Abs','ACos','Asc','ASin', 'ATan','Ceil','Chr','Cos', 'Exp','FileExist','Floor', 'GetKeyState', 'Mod','NumGet','NumPut','Round','Sin', 'Sqrt','StrLen','SubStr','InStr','IsFunc','IsLabel','Ln', 'Log','Tan', 'WinActive','WinExist' ), 9 => array( 'IL_Add','IL_Create','IL_Destroy','LV_Add','LV_Delete','LV_DeleteCol', 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList' ), 10 => array( 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev','TV_GetSelection','TV_GetText','TV_Modify' ), 11 => array( 'SB_SetIcon','SB_SetParts','SB_SetText',SB_SetProgress' ), 12 => array( 'OnMessage','RegExMatch','RegExReplace','RegisterCallback','VarSetCapacity' ), 5 => array( // #Directives 'AllowSameLineComments','ClipboardTimeout','CommentFlag', 'ErrorStdOut','EscapeChar','HotkeyInterval', 'HotkeyModifierTimeout','Hotstring','IfWinActive', 'IfWinExist','IfWinNotActive','IfWinNotExist', 'Include','IncludeAgain','InstallKeybdHook', 'InstallMouseHook','KeyHistory','MaxHotkeysPerInterval','MaxMem','MaxThreads', 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', 'NoTrayIcon','Persistent','SingleInstance', 'UseHook','WinActivateForce' ), 6 => array( 'Shift','LShift','RShift', 'Alt','LAlt','RAlt', 'LControl','RControl', 'Ctrl','LCtrl','RCtrl', 'LWin','RWin','AppsKey', 'AltDown','AltUp','ShiftDown', 'ShiftUp','CtrlDown','CtrlUp', 'LWinDown','LWinUp','RWinDown', 'RWinUp','LButton','RButton', 'MButton','WheelUp','WheelDown', 'WheelLeft','WheelRight','XButton1', 'XButton2','Joy1','Joy2', 'Joy3','Joy4','Joy5', 'Joy6','Joy7','Joy8', 'Joy9','Joy10','Joy11', 'Joy12','Joy13','Joy14', 'Joy15','Joy16','Joy17', 'Joy18','Joy19','Joy20', 'Joy21','Joy22','Joy23', 'Joy24','Joy25','Joy26', 'Joy27','Joy28','Joy29', 'Joy30','Joy31','Joy32', 'JoyX','JoyY','JoyZ', 'JoyR','JoyU','JoyV', 'JoyPOV','JoyName','JoyButtons', 'JoyAxes','JoyInfo','Space', 'Tab','Enter', 'Escape','Esc','BackSpace', 'BS','Delete','Del', 'Insert','Ins','PGUP', 'PGDN','Home','End', 'Up','Down','Left', 'Right','PrintScreen','CtrlBreak', 'Pause','ScrollLock','CapsLock', 'NumLock','Numpad0','Numpad1', 'Numpad2','Numpad3','Numpad4', 'Numpad5','Numpad6','Numpad7', 'Numpad8','Numpad9','NumpadMult', 'NumpadAdd','NumpadSub','NumpadDiv', 'NumpadDot','NumpadDel','NumpadIns', 'NumpadClear','NumpadUp','NumpadDown', 'NumpadLeft','NumpadRight','NumpadHome', 'NumpadEnd','NumpadPgup','NumpadPgdn', 'NumpadEnter','F1','F2', 'F3','F4','F5', 'F6','F7','F8', 'F9','F10','F11', 'F12','F13','F14', 'F15','F16','F17', 'F18','F19','F20', 'F21','F22','F23', 'F24','Browser_Back','Browser_Forward', 'Browser_Refresh','Browser_Stop','Browser_Search', 'Browser_Favorites','Browser_Home','Volume_Mute', 'Volume_Down','Volume_Up','Media_Next', 'Media_Prev','Media_Stop','Media_Play_Pause', 'Launch_Mail','Launch_Media','Launch_App1', 'Launch_App2' ), 7 => array( // Gui commands 'Add', 'Show', 'Submit', 'Cancel', 'Destroy', 'Font', 'Color', 'Margin', 'Flash', 'Default', 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop' ), 13 => array( // Gui Controls 'ListView','TreeView'), 8 => array( // Gui Controls 'Button', 'Checkbox','Radio','DropDownList','DDL', 'ComboBox','ListBox','Text','Edit','UpDown','Pic','Picture','DateTime','MonthCal', 'Slider' ) ), 'SYMBOLS' => array( '(',')','[',']', '+','-','*','/','&','^', '=','+=','-=','*=','/=','&=', '==','<','<=','>','>=',':=', ',','.' ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, 1 => false, 2 => false, 3 => false, 4 => false, 5 => false, 6 => false, 7 => false, 8 => false 9 => false ), 'STYLES' => array( 'KEYWORDS' => array( 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue 2 => 'color: #FF8800;', // BIV yellow 3 => 'color: #FF00FF; font-style: italic;', // commands purple 4 => 'color: #888844; font-weight: bold; font-style: italic;', // functions #0080FF 9 => 'color: #888844; font-weight: bold; font-style: italic;', // lv_functions #888844 10 => 'color: #888844; font-weight: bold; font-style: italic;', // tv_functions 11 => 'color: #888844; font-weight: bold; font-style: italic;', // sb_functions 12 => 'color: #888844; font-weight: bold; font-style: italic;', // commands_functions 5 => 'color: #000000; font-style: italic;', // directives #black 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red 7 => 'color: #000000; font-style: italic;', // gui commands #black 8 => 'color: #000000; font-style: italic;' // gui controls 13 => 'color: #000000; font-style: italic;' // gui controls ), 'COMMENTS' => array( 'MULTI' => 'font-style: italic; color: #669900;', 1 => 'font-style: italic; color: #009933;' ), 'ESCAPE_CHAR' => array( 0 => '' ), 'BRACKETS' => array( 0 => 'color: #FF4400; font-weight: bold;' ), 'STRINGS' => array( 0 => 'font-weight: bold; color: #008080;' ), 'NUMBERS' => array( 0 => 'color: #0000dd;' ), 'METHODS' => array( 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' ), 'SYMBOLS' => array( 0 => 'color: #000000; font-weight: italic;' ), 'REGEXPS' => array( 0 => 'font-weight: italic; color: #A00A0;', 1 => 'color: #CC0000; font-style: italic;', 2 => 'color: #DD0000; font-style: italic;', 3 => 'color: #88FF88;' ), 'SCRIPT' => array( ) ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( 1 => '_' ), 'REGEXPS' => array( //Variables 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', //hotstrings 1 => '::[\w\d]+::', //labels 2 => '\w[\w\d]+:\s', //Built-in Variables 3 => '\bA_\w+\b(?![^<]*>)' ), 'URLS' => array( 1 => '', 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', 4 => 'http://www.autohotkey.com/docs/Functions.htm#{FNAME}', 9 => 'http://www.autohotkey.com/docs/commands/ListView.htm#{FNAME}', 10 => 'http://www.autohotkey.com/docs/commands/TreeView.htm#{FNAME}', 11 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}', 12 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', 6 => '', 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', 13 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' ), 'STRICT_MODE_APPLIES' => GESHI_MAYBE, 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( 0 => true, 1 => true, 2 => true, 3 => true ), 'PARSER_CONTROL' => array( 'KEYWORDS' => array( 5 => array( 'DISALLOWED_BEFORE' => '(?
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

23

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii, обратите внимание, пожалуйста!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

2atomix: получается, что «меня без меня женили»?!

2teadrinker: хотя бы расскажите, что мне с этим кодом делать.

25

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Нужно зайти на ftp://script-coding.com и заменить существующий файл ahk.php.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

26

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

teadrinker, отправил Вам письмо.

27

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

teadrinker, файл получил.

1. В оригинале концы строк были в стиле UNIX: только LF. Заменил в присланном файле.
2. После замены оригинального файла присланным происходит следующее: на страницах, где наличествует код, оформленный тэгом «AHK», «слетает» таблица стилей CSS. В результате страница теряет своё стандартное оформление. В причинах не разбирался. Пока восстановил старый файл.

Укажите время (по MSK), как Вам будет удобно, когда я могу, скажем, на полчаса, заменить старый файл новым, дабы Вы могли бы посмотреть, что получается.

28

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Нашёл в 212 строке лишнюю запятую:

        7 => array(
            // Gui commands
            'Add',
            'Show', 'Submit', 'Cancel', 'Destroy',
            'Font', 'Color', 'Margin', 'Flash', 'Default',
            'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop',    // вот здесь лишняя запятая в конце
            ),

Возможно, в этом причина.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

29

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Если не получится, пишите, нашёл ещё одну возможную проблему. Впрочем, пошлю Вам файл.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

30

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Отправил Вам вариант на основе первоначального.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

31 (изменено: yuriy2000, 2011-12-04 21:05:02)

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii пишет:

Насчёт Colorer: «это не есть факт, мсье Дюк». Там достаточно предустановленных схем, и ничто не мешает создать свою собственную под свою расцветку Far Manager'a. Я, скажем, пользую свою расцветку Far Manager'a и свою расцветку Colorer'a.
.........

Вопрос к Вам к специалисту:
Я тоже давно пользуюсь FAR+colorer и недавно узнал, что colorer умеет извлекать список функций из текста программы, однако как оказалось (во всяком случае с моими стандартными схемами) для VBScript список функций не отображается, другое дело Jscript.
Видимо некорректно настроены шаблоны (regexp'ы).



Использую FAR2 (build 1807), Colorer (Версия 1.0.3.4 . 04.07.2011)
PS: Список извлекаю через меню Colorer/5 Outliner list

Не знаете как это можно пофиксить ?

32

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

Нет, не подскажу. Я думаю, что лучше спросить здесь: Colorer — гибкая раскраска синтаксиса в редакторе и др., если данный вопрос ранее в теме не поднимался.

33

Re: OFF: Обсудим цвета и шрифты в GESHI для AHK

alexii пишет:

Нет, не подскажу. Я думаю, что лучше спросить здесь: Colorer — гибкая раскраска синтаксиса в редакторе и др., если данный вопрос ранее в теме не поднимался.

Спасибо, так и сделаю....

PS: В процессе тестирования обнаружил, что если перед словом Sub или Function стоят пробелы или слова Private/Public..., то функция в список извлекается.