Page 1 of 1

CudaText: Автоматически назначать цвет вкладки

Posted: 08.11.2020 13:26
by Shovel
В SynWrite возможно установить цвета вкладок для каждого лексера (Options/Lexer Overrides), CudaText умеет что-то подобное? Сам найти не смог.
(API кажется позволяет, так что не пропаду если нет такой опции :)

Posted: 08.11.2020 13:39
by Alexey
В Куде такой опции нет, и она бы плохо себя вела с разными темами (светлая, темная), не уверен что стОит делать.

Posted: 08.11.2020 14:34
by Shovel
Хм, я не вижу проблемы. Пользователь же сам выбирает и цвета и тему.

Posted: 08.11.2020 17:01
by Alexey
Предлагаю так- вы напишите обзор Куд (не короткий!) на какой-то хороший сайт (Хабр). а я сделаю эту опцию для lexer specific config.

Posted: 08.11.2020 17:04
by Shovel
Плагин оказался очень простым, может кому пригодится. (нужно добавить 'on_open' в settings/plugins.ini - [events])

Code: Select all

from cudatext import *

# lexer name or extension  to  tab color
col_map = {
            '.cs':'#00ffff',  
            'Python':'#fbd026',
          }

class Command:
 
  def on_open(self, ed_self):
    filename = ed_self.get_filename()
    lexer = ed_self.get_prop(PROP_LEXER_FILE)
        
    for key in col_map:
      if key[0] == '.':  # Extension
        if filename.endswith(key):
          ed_self.set_prop(PROP_TAB_COLOR, self.color2int(col_map[key]))
          break
      else:  # Lexer
        if key == lexer:
          ed_self.set_prop(PROP_TAB_COLOR, self.color2int(col_map[key]))
          break
              
  def color2int(self, color):
    if type(color) == str:
      return int(color[1:7], 16)
    return color

Posted: 08.11.2020 17:09
by Shovel
Alexey wrote:Предлагаю так- вы напишите обзор Куд (не короткий!) на какой-то хороший сайт (Хабр). а я сделаю эту опцию для lexer specific config.
Я бы с удовольствием (уже много лет в восторге от SynWrite и CudaText), но я к сожалению не распологаю необходимыми навыками :)

Posted: 08.11.2020 17:24
by Alexey
оформлю это как надо, перепишу то есть, и выложу скоро.