Вертикальная разметка AkelPad

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 1
Joined: Thu Aug 22, 2024 9:28 am

Вертикальная разметка AkelPad

Post by maximim10 »

Добрый день, форумчане. Не смог найти информацию в интернете, подскажите, пожалуйста

Есть большое желание включить вертикальную разметку в akelpad, но не знаю, есть ли тут такое
То есть я хочу, чтобы каждые 8 символов у меня была вертикальная черта по всему блокноту. Смысл в том, что у меня внешняя программа считывает строки и разбивает их на блоки по 8 символов. Хочу для упрощения навигации
Или, например, я видел, что можно строки раскрасить в разные цвета попеременно. Вот так же, только по вертикали

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Re: Вертикальная разметка AkelPad

Post by Instructor »

Есть возможность только отмечать отступы в начале строк: https://disk.yandex.ru/i/0LDn186N7DDg9g

Offline
Posts: 40
Joined: Thu May 05, 2022 5:38 am

Re: Вертикальная разметка AkelPad

Post by dothen »


Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Re: Вертикальная разметка AkelPad

Post by Instructor »

dothen
Оригинально!

Для использования скрипта может быть удобным сделать нулевой отступ текста в настройках программы.

Offline
Posts: 40
Joined: Thu May 05, 2022 5:38 am

Re: Вертикальная разметка AkelPad

Post by dothen »

Instructor wrote: Mon Oct 28, 2024 10:18 am Для использования скрипта может быть удобным сделать нулевой отступ текста в настройках программы.
Имеете ввиду дополнительный чекбокс для отключения левого отступа?

Можно только сообщения (команды) DISABLE... ENABLE...

Я пробовал из скрипта убирать левый отступ через EM_SETMARGINS но этот отступ считается
от края окна редактирования без учета области с номерами строк или сворачивания блоков.
К тому же после EM_SETMARGINS диалог настроек про изменение отступа не знает,
например, в настройках задали отступ 10, отправляем EM_SETMARGINS из скрипта, отступ в окне стал 0,
открываем настройки - там стоит 10, ставим 0, нажимаем ОК, текст сдвигается влево за край окна на 10px.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Re: Вертикальная разметка AkelPad

Post by Instructor »

dothen
Через AKD_SETFRAMEINFO можно установить:

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();
var oSys=AkelPad.SystemFunction();
var lpMargins;
var lpRect;

if (lpRect=AkelPad.MemAlloc(16 /*sizeof(RECT)*/))
{
  //Get margins
  lpMargins=AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 79 /*FI_RECTMARGINS*/, 0);
  oSys.Call("kernel32::RtlMoveMemory", lpRect, lpMargins, 16 /*sizeof(RECT)*/);

  //New left margin
  AkelPad.MemCopy(_PtrAdd(lpRect, 0) /*offsetof(RECT, left)*/, 0, 3 /*DT_DWORD*/);

  //Set margins
  lpFrameInfo=AkelPad.MemAlloc(_X64?16:8 /*sizeof(FRAMEINFO)*/);
  AkelPad.MemCopy(_PtrAdd(lpFrameInfo, 0) /*offsetof(FRAMEINFO, nType)*/, 26 /*FIS_RECTMARGINS*/, 3 /*DT_DWORD*/);
  AkelPad.MemCopy(_PtrAdd(lpFrameInfo, _X64?8:4) /*offsetof(FRAMEINFO, dwData)*/, lpRect, 2 /*DT_QWORD*/);
  AkelPad.SendMessage(hMainWnd, 1220 /*AKD_SETFRAMEINFO*/, lpFrameInfo, 0);

  AkelPad.MemFree(lpRect);
}

Offline
Posts: 40
Joined: Thu May 05, 2022 5:38 am

Re: Вертикальная разметка AkelPad

Post by dothen »

Хорошо, еще есть скрипт MarginsChange.js
Post Reply