Calendar by dimfish

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
Shmuel
Posts: 6066
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 299 times

Calendar by dimfish

Post by Shmuel »

Latest post of the previous page:

HaRT wrote: А Фар не выставляет свой диалог выбора цвета для использования в плагинах?
far.ColorDialog.

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

Такс я тут подумал и сделал по Ctrl+MouseClick - если кликнуть по отмеченной дате или Today - будет вызван диалог смены цвета...
FAR manager — Начальник далеко

User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote: сделал по Ctrl+MouseClick
Хорошо бы ещё и безмышиный интерфейс…
Например, Ctrl-/Shift-/Space, когда фокус в календарике (т.е. на “dd”). Shift — для выделенной даты, Ctrl — для сегодняшней, CtrlShift — для сегодняшней выделенной. (Реализацию пока не смотрел, могу в мелочах быть неточен.)
21:45 MSK
К сожалению, текущая реализация не позволяет задать отдельные цвета для Выделенный+Сегодня.
Впрочем, независимо от этого я вернул себе обрамление сегодняшнего дня символами ‘‹›’ (невыделенный) и ‘{}’ (выделенный). Может вынести эти символы в настройки? Пусть каждый себе задаёт, что ему нравится.
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Вычеркнуто неактуальное, добавлен абзац про обрамление символами.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote:Такс я тут подумал и сделал по Ctrl+MouseClick - если кликнуть по отмеченной дате или Today - будет вызван диалог смены цвета...
В некоторых случаях при щелчке на сегодня ничего не происходит. Минимальный сценарий у меня такой (всё с клавиатуры): вызвать Calendar, нажать кнопку Сегодня, сместиться на день влево, попытаться открыть диалог цвета для Сегодня. Причина в том, что “date.diff(today, dt):spandays()” возвращает не 1, а чуть меньше (например, 0.993) — и сравнение даёт false. Исправление — например, округлять: “math.floor( date.diff(today, dt):spandays() + 0.5 )”.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

Надеюсь теперь кастомизация устроит всех ;)
- Добавил SelectedToday для выбора цвета
- Добавил Ctrl+Alt+MouseClick меню с выбором формата Today, Selected, SelectedToday
- Исправил вычисление Today по клику
FAR manager — Начальник далеко

User avatar
abelenki
Posts: 455
Joined: Thu 02 Jul, 2009 07:39
Location: Perm, Russia
Has thanked: 133 times
Been thanked: 21 times
Contact:

Calendar by dimfish

Post by abelenki »

спасибо, последнее обновление порадовало. наконец-то нет .

мои изменения в скрипте:


User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote: Надеюсь теперь кастомизация устроит всех
Спасибо, теперь и впрямь гораздо удобнее, однако не вполне:
HaRT wrote: Хорошо бы ещё и безмышиный интерфейс…
Например, Ctrl-/Shift-/Space, когда фокус в календарике (т.е. на “dd”). Shift — для выделенной даты, Ctrl — для сегодняшней, CtrlShift — для сегодняшней выделенной.
Безмышиная настройка будет полезна в telnet/SSH-сеансах.
Ну а в список форматов я для себя добавил ещё и “‹%s›” (это не так броско, как с угловыми скобками).

И ещё вылезла одна неприятность: если сегодняшний день (today) суббота или воскресенье (weekend), то день красится красным независимо от настроек — в этом легко убедиться, временно заменив в скрипте все три вхождения “date()” на “date'2016-05-22'”.
Т.е. по факту получается, что нужна ещё тройка цветов: WEToday, WESelected, WESelectedToday (тут WE — сокращение от WeekEnd).
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

- Добавил Ctrl+F1, Ctrl+F2, Ctrl+F3 для изменения цвета
- Добавил Ctrl+Alt+F1, Ctrl+Alt+F2, Ctrl+Alt+F3 для изменения формата
- Добавил "‹%2s›"
HaRT wrote: И ещё вылезла одна неприятность: если сегодняшний день (today) суббота или воскресенье (weekend), то день красится красным
Вообще то это была фича, но я согласен что в общем случае это неправильно - убрал, ибо ещё 6 настроек для выходных мне кажется перебор
FAR manager — Начальник далеко

User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote: ещё 6 настроек для выходных мне кажется перебор
Отчего же ещё 6? Всего 6, из которых 3 уже есть. И лично я считаю, что только при добавлении тех 3 картина может стать завершённой.
13:10 MSK
Я ещё я себе заменил “Ctrl(Alt)[F1,F2,F3,Mouse]” на “Ctrl(Alt)[F1,F2,F3,LMB]” и подвинул на одно знакоместо вправо, чтобы лучше стыковалось с контролами строкой ниже. А в идеале что слово “Mouse”, что сокращение “LMB” должны быть локализована („Мышь“ и „ЛКМ“ соответственно).
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлен абзац про подсказку
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

HaRT wrote: И лично я считаю, что только при добавлении тех 3 картина может стать завершённой.
Ладно уговорил :)

Ctrl+Shift + F1-3, LMB - change Color of Selected Today Weekend or Selected Weekend or Today Weekend
FAR manager — Начальник далеко

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

Я вынес отдельно язык в файлы вида 'Common_Calendar_XXX.lng', а также сделал Help по F1 (файлы вида 'Common_Calendar_XXX.hlf')
Help пока только на англ - приглашаются желающие перевести на русский хотя бы :roll:
FAR manager — Начальник далеко

User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote: вынес отдельно язык в файлы вида 'Common_Calendar_XXX.lng'
Сама по себе затея хорошая и правильная, но вот в Фаре [i][b].lng[/b][/i] файлы традиционно имеют другой формат, т.ч. предлагаю эти переименовать всё-таки в [i][b].lua[/b][/i].
dimfish wrote: файлы вида 'Common_Calendar_XXX.hlf'
Для полноты картины хорошо бы ещё упомянуть про перемещение по датам стрелками.

А ещё в соседней теме жалуются, что переменная Menu “затеняет” глобальную:
Shmuel wrote:
sToLp wrote: скачал последнюю версию dimfish_Calendar, добавил кондишен и ошибка исчезла
Ошибка не должна была исчезнуть. Ошибка присутствует и в текущей версии календаря, это строчка 74: local Menu = far.Menu.
Чтобы не ждать милостей от природы автора календаря, замените Menu.Id на _G.Menu.Id.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

HaRT wrote: предлагаю эти переименовать всё-таки в .lua
Я так сделал вначале, но эти файлы будут всегда парсится при старте - так что не подходит...
HaRT wrote: local Menu = far.Menu.
завтра починю обязательно
FAR manager — Начальник далеко

buniak_a_h
Posts: 1605
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 109 times
Been thanked: 139 times
Contact:

Calendar by dimfish

Post by buniak_a_h »

dimfish wrote:
HaRT wrote: предлагаю эти переименовать всё-таки в .lua
Я так сделал вначале, но эти файлы будут всегда парсится при старте - так что не подходит...
Я чего-то не понимаю? Есть хороший способ - хранить частные настроечные файлы их не в %FARPROFILE%\Macros, а в %FARLOCALPROFILE% (например, %FARLOCALPROFILE%\dimfish\calendar.cfg)
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
dimfish
Posts: 179
Joined: Fri 29 Apr, 2016 13:18
Location: Saint-Petersburg
Has thanked: 1 time
Been thanked: 36 times

Calendar by dimfish

Post by dimfish »

buniak_a_h
Ну и как люди это всё ставить будут? Раскидывать по разным папкам руками? Зачем такие сложности?
FAR manager — Начальник далеко

User avatar
HaRT
Moderator
Posts: 9331
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Calendar by dimfish

Post by HaRT »

dimfish wrote: но эти файлы будут всегда парсится при старте
И что в этом такого плохого? Времени это занимает ничтожно мало, никаких видимых неприятностей не даёт. Зато название соответствует фактическому содержимому. Насколько я понимаю, в Rh_Scripts применён аналогичный подход, и никто не жаловался, хотя там скриптов гораздо больше.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

Return to “Полезные макросы и скрипты”