ASCII Table plugin for FAR3 x64

Хотите предложить идею нового плагина или знаете, что улучшить в существующем? Пишите сюда.
pp
Posts: 36
Joined: Wed 24 Jan, 2007 11:39
Location: Česká republika
Has thanked: 7 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: 151
Joined: Fri 08 Aug, 2008 16:14
Has thanked: 3 times
Been thanked: 4 times
Contact:

ASCII Table plugin for FAR3 x64

Post by ivank »

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

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: 3 times
Contact:

ASCII Table plugin for FAR3 x64

Post by SotM »

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

ASCII Table plugin for FAR3 x64

Post by Shmuel »

SotM, попробуйте плагин Unicode CharMap.
LAT
Posts: 343
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 22 times
Been thanked: 39 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: 3 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: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

ASCII Table plugin for FAR3 x64

Post by HaRT »

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

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Для любителей минималстики.
Сделал я макрос. Выглядит это так:
image.png
Сам макрос совсем небольшой:
  1. local F = far.Flags
  2.  
  3.  
  4.  
  5. local aDlg = nil
  6.  
  7. local function InitDlg()
  8.  
  9.   local function ANSItoUTF_8(str)
  10.  
  11.     return win.WideCharToMultiByte(win.MultiByteToWideChar(str, win.GetACP()), 65001)
  12.  
  13.   end;
  14.  
  15.   aDlg={}
  16.  
  17.   local ic = 0
  18.  
  19.   local y = 1
  20.  
  21.   for _=1,16 do
  22.  
  23.     local x = 1
  24.  
  25.     for _=1,16 do
  26.  
  27.       if ic == 0 then
  28.  
  29.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS,F.DIF_DISABLE), ''}
  30.  
  31.       else
  32.  
  33.         aDlg[#aDlg+1] = {F.DI_BUTTON,x,y,x,y,0,0,0,bor(F.DIF_NOBRACKETS), ANSItoUTF_8(string.char(ic))}
  34.  
  35.       end
  36.  
  37.       ic = ic + 1
  38.  
  39.       x = x + 2
  40.  
  41.     end
  42.  
  43.     y = y + 1
  44.  
  45.   end
  46.  
  47. end -- InitDlg
  48.  
  49.  
  50.  
  51. Macro{
  52.  
  53.   id="95291066-63BA-46A4-B6C1-2A75C475AF53";
  54.  
  55.   area="Editor";
  56.  
  57.   key="AltC";
  58.  
  59.   description="ASCII-таблица";
  60.  
  61.   flags="";
  62.  
  63.   condition=function(key, data)
  64.  
  65.     local ei = editor.GetInfo()
  66.  
  67.     return ei and ei.CodePage == 1251
  68.  
  69.   end;
  70.  
  71.   action=function(data)
  72.  
  73.     if not aDlg then InitDlg() end
  74.  
  75.     local function fDlg(hDlg, Msg, Param1, Param2)
  76.  
  77.       if Msg == F.DN_CONTROLINPUT and Param2.EventType == F.KEY_EVENT then
  78.  
  79.         local key = far.InputRecordToName(Param2)
  80.  
  81.         if key == 'Down' then
  82.  
  83.           local i = Param1 + 16
  84.  
  85.           if i > 256 then i = i - 256 end
  86.  
  87.           hDlg:send(F.DM_SETFOCUS, i)
  88.  
  89.           return true
  90.  
  91.         elseif key == 'Up' then
  92.  
  93.           local i = Param1 - 16
  94.  
  95.           if i < 0 then i = i + 256 end
  96.  
  97.           hDlg:send(F.DM_SETFOCUS, i)
  98.  
  99.           return true
  100.  
  101.         end
  102.  
  103.       end
  104.  
  105.     end -- fDlg
  106.  
  107.     local i = far.Dialog(win.Uuid'7E284561-EE21-48B2-B2DB-1AF84F9D863A', -1,-1,35,18,nil,aDlg, F.FDLG_NODRAWSHADOW, fDlg)
  108.  
  109.     if i > 0 then
  110.  
  111.       mf.print(aDlg[i][10])
  112.  
  113.     end
  114.  
  115.   end;
  116.  
  117. }
Условности и ограничения:
  1. Вызывается в редакторе только если установлена кодовая страница 1251.
  2. Если был отмечен блок, то отметка снимается (при желании можно исправить).
  3. Макрос повешен на Alt+C
Для удобства скачивания:
Ascii.lua
(1.64 KiB) Downloaded 131 times
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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 139 times

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

ASCII Table plugin for FAR3 x64

Post by buniak_a_h »

Ой, всё зря… Есть уже, оказывается, такой же…
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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 155 times
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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: 3 times
Contact:

ASCII Table plugin for FAR3 x64

Post by SotM »

buniak_a_h, в идеале, конечно, было бы здорово увидеть такое:
shot1.jpg
shot1.jpg (23.4 KiB) Viewed 5231 times
А пока оно выглядит вот так:
image.png
image.png (6.83 KiB) Viewed 5231 times
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 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 “Предложения и идеи”