ASCII Table plugin for FAR3 x64

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
pp
Posts: 35
Joined: Wed 24 Jan, 2007 11:39
Location: Česká republika
Has thanked: 4 times
Contact:

ASCII Table plugin for FAR3 x64

Post by pp »

Is there any ASCII Table plugin for 64-bit version of FAR? There is none listed in http://forum.farmanager.com/viewtopic.php?f=5&t=4590. In the plugring I've found a few (ASCII chart/symbols/Table, Character Map) but they are available only for x86 :(
ivank
Posts: 136
Joined: Fri 08 Aug, 2008 16:14
Been thanked: 3 times
Contact:

ASCII Table plugin for FAR3 x64

Post by ivank »

You can try macro CharacterMapLua
User avatar
John Doe
Бюрократ
Posts: 13372
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 52 times
Been thanked: 346 times

ASCII Table plugin for FAR3 x64

Post by John Doe »

SotM
Posts: 6
Joined: Sun 09 Apr, 2006 18:47
Location: Rostov-on-Don
Has thanked: 2 times
Contact:

ASCII Table plugin for FAR3 x64

Post by SotM »

На старой версии ФАРа я пользовался плагином ASCII Table. Пользуюсь ФАРом 3.0 x64, а вот плагина Ascii Table для этой версии не нашел. Пробовал CharacterMapLua, но это не то, не показывается код символа и я не нашёл способ сменить кодировку.
Есть какие либо аналоги?
Shmuel
Posts: 6365
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 397 times

ASCII Table plugin for FAR3 x64

Post by Shmuel »

SotM, попробуйте плагин Unicode CharMap.
LAT
Posts: 341
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 22 times
Been thanked: 38 times

ASCII Table plugin for FAR3 x64

Post by LAT »

EditByte
SotM
Posts: 6
Joined: Sun 09 Apr, 2006 18:47
Location: Rostov-on-Don
Has thanked: 2 times
Contact:

ASCII Table plugin for FAR3 x64

Post by SotM »

Shmuel wrote: Wed 25 Aug, 2021 18:28 SotM, попробуйте плагин Unicode CharMap.
Ну уже чуток ближе к истине, но это Unicode, а мне нужно функционал как в Ascii Table (шрифт выбирать мне не нужно, хочу смотреть коды символов в DOS/WIN кодировке).
LAT wrote: Thu 26 Aug, 2021 10:38EditByte
Это что такое? В поиске не нашёл.
User avatar
HaRT
Moderator
Posts: 9884
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 136 times
Been thanked: 276 times

ASCII Table plugin for FAR3 x64

Post by HaRT »

SotM wrote: Tue 31 Aug, 2021 12:56 Это что такое? В поиске не нашёл
Плохо искали. У меня в выдаче с первой же найденной веб-страницы можно скачать.
Фар есть инструмент, а не нянька. © 2009 DrKnS
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Для любителей минималстики.
Сделал я макрос. Выглядит это так:
image.png
Сам макрос совсем небольшой:
  1. local F = far.Flags
  2.  
  3. local aDlg = nil
  4. local function InitDlg()
  5.   local function ANSItoUTF_8(str)
  6.     return win.WideCharToMultiByte(win.MultiByteToWideChar(str, win.GetACP()), 65001)
  7.   end;
  8.   aDlg={}
  9.   local ic = 0
  10.   local y = 1
  11.   for _=1,16 do
  12.     local x = 1
  13.     for _=1,16 do
  14.       if ic == 0 then
  15.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS,F.DIF_DISABLE), ''}
  16.       else
  17.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS), ANSItoUTF_8(string.char(ic))}
  18.       end
  19.       ic = ic + 1
  20.       x = x + 2
  21.     end
  22.     y = y + 1
  23.   end
  24. end -- InitDlg
  25.  
  26. Macro{
  27.   id="95291066-63BA-46A4-B6C1-2A75C475AF53";
  28.   area="Editor";
  29.   key="AltC";
  30.   description="ASCII-таблица";
  31.   flags="";
  32.   condition=function(key, data)
  33.     local ei = editor.GetInfo()
  34.     return ei and ei.CodePage == 1251
  35.   end;
  36.   action=function(data)
  37.     if not aDlg then InitDlg() end
  38.     local function fDlg(hDlg, Msg, Param1, Param2)
  39.       if Msg == F.DN_CONTROLINPUT and Param2.EventType == F.KEY_EVENT then
  40.         local key = far.InputRecordToName(Param2)
  41.         if key == 'Down' then
  42.           local i = Param1 + 16
  43.           if i > 256 then i = i - 256 end
  44.           hDlg:send(F.DM_SETFOCUS, i)
  45.           return true
  46.         elseif key == 'Up' then
  47.           local i = Param1 - 16
  48.           if i < 0 then i = i + 256 end
  49.           hDlg:send(F.DM_SETFOCUS, i)
  50.           return true
  51.         end
  52.       end
  53.     end -- fDlg
  54.     local i = far.Dialog(win.Uuid'7E284561-EE21-48B2-B2DB-1AF84F9D863A', -1,-1,35,18,nil,aDlg, F.FDLG_NODRAWSHADOW, fDlg)
  55.     if i > 0 then
  56.       mf.print(aDlg[i][10])
  57.     end
  58.   end;
  59. }
Условности и ограничения:
  1. Вызывается в редакторе только если установлена кодовая страница 1251.
  2. Если был отмечен блок, то отметка снимается (при желании можно исправить).
  3. Макрос повешен на Alt+C
Для удобства скачивания:
Ascii.lua
(1.64 KiB) Downloaded 7 times
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Немного изменён макрос из сообщения. Что изменено:
  1. Дозволен в любой рабочей области
  2. Если ввод недопустим (не редактор и не поле ввода диалога, либо редактор не в ASCII, либо поле ввода диалога - с флагом ReadOnly), то выбранный символ заносится в клипборд.
  3. Расширена навигация по таблице: Home, End, CtrlPgUp, CtrlPgDn (в начало, конец строки, таблицы).
  4. По CtrlC текущий символ добавляется в клипборд
  5. Предусмотрена визуализация кода символа.
Скачать:
Ascii.lua
(4.13 KiB) Downloaded 13 times

SotM, pp!
Если кто помнит, чего в этом макросе нет по сравнению с исходным плагином, напишите.
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Ой, всё зря… Есть уже, оказывается, такой же…
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Ну, раз народ скачивает…
Следующий вариант макроса (не называю это версией, т.к. не оформлял по правилам). Что нового:
  1. "Горячая клавиша" Alt+C заменена на Ctrl+Alt+C. AltC хорош в редакторе, но плох в панелях (инициируется поиск) и диалогах (переход по акселератору &C).
  2. Несколько изменён дизайн окна: добавлена рамка с заголовком, код символа (дес и hex), отображение буфера обмена.
  3. Реализована также таблица OEM. Переключение - по F8. Также кодовая страница OEM выбирается при открытии диалога в случае, если редактор открыт в CP=OEM. Соответственно снято ограничение на кодовую страницу 1251 в редакторе.
  4. В случае вызова таблицы в панелях выбранный символ заносится в командную строку.
  5. Исправлены мелкие неточности: если в редакторе отмечен тест, то выбранный символ заменяет отмеченный текст в текущей строке; символ вставляется в текущее положение курсора также в случае, когда курсор расположен за последним символом строки.
  6. Реализован вызов макроса из МЕНЮ плагинов.
    Собственно скрипт:
    Ascii.lua
    (6.87 KiB) Downloaded 30 times
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Тем, кто пользуется этим скриптом!
Опыт использования продиктовал мелкое изменение; строку 44 надо заключить в следующий блок if:

Code: Select all

  if data.ei and (data.ei.CodePage == 866 or data.ei.CodePage == 1251) then
    SetCP(data.ei.CodePage == 866)
  end
Для чего это надо: выбор таблицы символов (ASCII / OEM) происходит только в области Editor и только в том случае, если кодировка ASCII или OEM. В противном случае таблица остаётся той же, что была при предыдущем вызове.
SotM
Posts: 6
Joined: Sun 09 Apr, 2006 18:47
Location: Rostov-on-Don
Has thanked: 2 times
Contact:

ASCII Table plugin for FAR3 x64

Post by SotM »

buniak_a_h, в идеале, конечно, было бы здорово увидеть такое:
shot1.jpg
shot1.jpg (23.4 KiB) Viewed 358 times
А пока оно выглядит вот так:
image.png
image.png (6.83 KiB) Viewed 358 times
buniak_a_h
Posts: 3094
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 164 times
Been thanked: 453 times
Contact:

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

SotM wrote: Mon 06 Sep, 2021 09:24 buniak_a_h, в идеале, конечно, было бы здорово увидеть такое:
Извините за задержку с ответом: загремел в реанимацию…
Ок, сделаю. Просто в моём скрипте есть возможность "набирать" строку (через Ctrl+C, по-моему). НО! Сделаю элементарную настройку. Причина: мне больше нравится когда символы расположены с разрежением. Возможно, причина - в слабом зрении.
"Подвал" точно сделаю, как Вы предлагаете. Ну, кроме того, что поле для отображения клипборда оставлю.
Post Reply

Return to “Предложения и идеи”