Code Monkey home page Code Monkey logo

utilities's Introduction

YoProfile YoTitle

Yo there!

I'm a small self taught Full Stack Developer who loves to immerse into small projects.


GitHub Stats


Technologies Used

Tools

Windows NixOS Android
VSCode Eclipse Visual%20Studio Android Studio IntelliJ%20IDEA
Git
Nix NPM

Backend

Java PowerShell C++ Python C#
.NET
MySQL SQL Server

Frontend

HTML5 CSS3
JS TS PHP
Angular Vue.js React Nx
RxJS Bootstrap

Platform

GitHub Arduino

utilities's People

Contributors

eryoneta avatar

Watchers

 avatar

utilities's Issues

MMD | Adicionar opções de exportar e importar formatos

  • Copiar MindMarkDown como HTML.
    • ´texto´ se torna <i>texto</i>, etc.
  • Copiar MindMarkDown como Markdown.
    • ´texto´ se torna _texto_, etc.
  • Colar HTML como MindMarkDown.
    • <i>texto</i> se torna ´texto´, etc.
  • Colar Markdown como MindMarkDown.
    • _texto_ se torna ´texto´, etc.
  • Copiar como texto.
    • Todos os formats são retirados, exceto por alguns:
      • Link: [texto](url) se torna texto (url).
      • List permanece igual.
      • Line permanece igual.
      • Image: ![texto](url) se torna texto (url).

MMD, Tree | Metalinks

  • É necessário #17
  • Um Link pode ligar a um mod: [Texto](#mod34nfSi2AaizV).
    • Ao clicar, o mod é focado.
    • O Texto tem o fundo igual a cor do mod. A cor é igual ao do titulo do mod.
    • O popup do hover diz: "NomeDoMod #mod34nfSi2AaizV".
  • Coxs também podem ser ligados.
  • Para ajudar, o titulo de um mod poderia incluir seu id.
    • Copiar um mod e o colar em um texto, colaria um Link para este.
  • Uma janela poderia listar todos os objs que possuem um Link para este.
    • Sistema de tags: Um obj pode referenciar vários mods, ou tags, e estes terão uma lista de todos os que referenciam a eles!
  • O ideal seria {{#mod34nfSi2AaizV}}, mas o texto não pode ser modificado para mostrar o titulo do obj ligado.

Tree | Detalhes

  • Ao gerar o nome completo de um mod, considerar o cox mais grosso primeiro.
  • Mudar Ctrl+Alt+[R|G|D] para Shift+Alt+[R|G|D].
  • Bug: Inverter relação de cox o reseta.
  • Alt+LeftDown = Mover todos os objs selecs.
  • Opção de exportar como texto:
    • Cada mod se torna um bloco: @ Titulo:\n* Titulo, etc.
  • Ter listas de url de Links e Images separados, avisando caso não funcionem mais?

Tree | Nova camada: Rules

  • Para cada entidade, adicionar mais uma camada: Rules. Este fica responsável por verificar e se assegurar que uma série de regras sejam seguidas durante a alteração de uma entidade.
  • Exemplo: ModuloRL.
    • Modulo teria uma instância de ModuloRL.
    • Um delete(mod) chamaria rules.canDelete(mod) e esse diz se ele pode ou não.

Tree | Tornar draw mais eficiente

  • Separar draw(), a UI em uma thread própria?
    • Cada obj desenharia em uma task, separados?
      • Mas como fica a frame desenhada, ela suporta múltiplos draws de cada obj?
  • MMD, Tree, todos podem ter uma thread própria.
  • Update dinâmico de imagem:
    • Ao arrastada, a frame inteira atual seria movida para o lado, e apenas os objs na borda descoberta sendo draw() na nova frame.
    • Zoom ainda necessita de draw() completo.
    • Apenas os objs que ficam nos Chunks tocados pela borda e descobertos é que são draw().
      • Em zoom alto, isso não é muito útil, os Chunks sendo grande demais para definir o que fica na borda(Tudo ficaria na borda).

MMD | Imagem

  • ![Texto](url){variáveis}.
    • Ex.: ![Imagem com width de 250px, e height de 100px](url){w250h100}.
  • O texto é mostrado também caso não haja imagem.
  • Os formatos suportados são .png, .jpg, e .gif.
    • Suporta vídeos? Sons?
    • Suporta imagens online.
  • Se não houver tamanho definido, usa o tamanho da imagem.
    • Com apenas 1 w ou h, calcula o tamanho proporcional.
  • Mecânica:
    • Um aboveSpace() é aplicado na linha, e a imagem é desenhada nela.
    • O texto aparece modificado(Menor? Cinza?) para indicar ser legenda.
    • Imagens online são lentas. É bom serem salvas em .temp e carregadas do disco.
  • Variáveis:
    • w + número: Controla a largura.
    • h + número: Controla a altura.
    • O número de w e h pode aceitar %: w80%.
      • Não vai menos do que 0% e mais do que 100%.
    • #: Controla se ocupa espaço ou não.
      • Se não ocupa espaço, pode aparecer abaixo do texto abaixo, um plano de fundo.
      • É apenas questão de aplicar aboveSpace() ou não.
    • # + cor: Controla a cor de fundo.
      • ![](){w100%h10#blue} consegue criar um plano de fundo azul.
    • O número é em unidades de "Altura de Linha".
      • Ex.: h25 significa uma imagem de altura equivalente a altura de 25 linhas.

MMD | Inversão de formatação

  • Ao utilizar uma mesma formatação aplicada por um TextStyler dentro dela, ela é anulada.
  • Ex.: Em :[Texto1 *Texto2* Texto3]{*}, o Texto2 aparece como normal, sem ser negrito.

MMD | Adicionar opções de mudar cores e valores padrão

  • Adicionar opção de configurar a cor de Special, Highlight, Hidden, Link, Citation, Line, e List.
  • Opção de Link mostrar ___ ou não.
  • Fonte de Highlight.
  • Limite de Profundidade de Citation e cada cor delas.
  • Quantidade e valor dos size_modifiers de SizeModifier.
  • Indentação de cada item de List.

Tree | Colar é rápido demais

  • Ctrl+V para colar mods é um pouco perigoso se pressionado, rapidamente adicionando dezenas e travando tudo.
  • Colar apenas quando a posição for diferente dos itens colados anteriormente.

MMD | Setas e Linhas

  • {{->}} pode se tornar uma seta.
    • {{}} se tornam SPECIAL, e -> é INVISIBLE, permitindo desenhar em seu lugar.
  • - é uma linha, >, <, ^, e v são setas, e L, T, J, e I são dobras.
  • As linhas são desenhadas em uma "grade"(Cada unidade = tab/4), isso permite que linhas verticais possam ser perfeitamente alinhadas.

MMD | Icone no texto

  • {{nomeDoIcone}} poderia ser usado para inserir um icone no texto.
  • Os {{}} podem ser configurados para serem INVISIBLE, nomeDoIcone pode ser SPECIAL, e o resultado é um espaço em branco que pode ser usado para se colocar um icone.

MMD | Interação entre atributos

Alguns dos atributos podem afetar outros:

  • SizeModifier afeta:
    • Line: #=== cria uma linha mais grossa do que o normal.
  • Anchor afeta:
    • TextStyler, SimpleAtributos, Link, e SizeModifier.
    • Image: :-![Texto](url), :-![Texto](url)-:, e ![Texto](url)-: criam uma imagem ancorada.
    • List: :-* , :-+ , :-- , ... criam uma lista com o texto ancorado.
    • Line: :-===, ... cria uma linha com o centro ancorado. Afeta apenas alguns de seus estilos.
      • Ele pode também ser afetado pelo SizeModifier: :-#===.
  • Citation afeta:
    • TextStyler, SimpleAtributos, Link, e SizeModifier.
    • Anchor: >:-Texto, >:-Texto-:, >Texto-: criam uma citação com o texto ancorado.
      • Ele pode também ter os itens afetados pelo Anchor.
    • List: >* , >+ , >- , ... criam uma lista citada.
      • Todos os itens podem aparecer sem precisar de pai, mas ainda obedecem a hierarquia!
      • A hierarquia é separada da lista de fora. Cada citação e cada nível seu possui uma lista diferente, independente uma da outra.
    • Line: >=== cria uma linha citada.
    • Image: >![Texto](url) cria uma imagem citada.
  • Line, List, Anchor, e Image criam group (^.*) no começo e seguem caso tiveram marca de SPECIAL?
    • Ou há um regex em cada um deles detectando um caso único?
  • Um draw() para cada caso!

MMD | Comandos em Link são perigosos

  • Conseguir executar comandos de terminal é perigoso.
  • Adicionar opção de ignorar PATHs.
  • Poderia ser adicionado uma opção em um menu: TextoMMD > Menu > Configurações > Link > Ignorar Caminhos Locais.

MMD | Formatação de texto é muito pesado

  • O MMD é muito lento, reformatando o texto inteiro.
  • Fazer ele apenas atualizar a linha que está sendo editada.
    • Infelizmente, isso quebra a formatação multi-linhas.
    • Detectar os formats atuais e manter as de multi-linhas caso não acabem na linha atual?
      • Caso uma formatação acabe na linha, é necessário saber se é preciso atualizar tudo acima. Como?

Tree | Ids únicos para cada obj

  • O id atual é com base no index no arquivo .mind. Útil, mas muda com o deletar e criar.
  • Cada obj possuiria um id base64: mod#NidDD33hdl2Y, cox#8NYsi3nH23Is,
    • São 12 dígitos.
  • O id de cada obj seria gerado de acordo com o tempo em que foi criado.
    • Repete o processo caso encontra um id igual.
  • Isso permitiria que Links de MMD possam se referir a objs.

MMD | Erro grave envolvendo undo/redo

  • Ocorre GlyphView error ao rapidamente desfazer ou refazer texto.
    • Algum lugar requer invokeLater()?
    • O undo()/redo() ativam insertUpdate()?
  • Ele é perigoso, travando o Texto!
    • Por sorte, basta sair e voltar algumas vezes para "consertar".
  • Undo no último caractere causa o erro? Ele trava o Texto.
  • Format como code, e delete o último caractere, undo(), e ele trava...?

SimpleTexto | Detalhes

  • ALT+[UP|DOWN] move 1 linha em uma direção.
  • Em um menu: Texto > Exibir, haveria uma opção para exibir traços que marcam quantas linhas há(Ou números!).
  • Há como detectar se um tab está na linha? Isso permitiria tabbedEnter() mesmo se o tab tiver uma letra no meio.
  • Recriar os comandos de clicks: 1=muda cursor, 2=seleciona palavra, 3=seleciona linha, 4=seleciona texto.

MMD | Tabela

  • |Uma|tabela|.
  • Pode-se fundir células:
    |Texto1|Texto2|Texto3|
    |_|__|
    Isso resulta em uma tabela com Texto1 ocupando 1 coluna, Texto2 e Texto3 em suas células, e 1 célula larga abaixo deles.
    • Cada _ representa uma célula.
    • Caso duas _ fiquem lado-a-lado, as células se fundem. Tem prioridade sobre as colunas.
  • Cada célula é como uma linha.
  • Todo o texto é verticalmente centralizado, mas pode ser horizontalmente afetado pelas Anchors.

MMD | TextStyler como styler global

  • Além de ter formats de texto, ele poderia também ter formats de linhas: Line, List, Citation, etc.
  • O começo e fim do format altera se afeta a linha ou não:
    • Para a primeira linha ser afetada, :[... deve estar no começo.
      • Citation, List, LeftAnchor, e CenterAnchor precisam disso para afetar a linha.
    • Para a última ser afetada, ...} deve estar no final.
      • CenterAnchor e RightAnchor precisam disso para afetar a linha.
    • Line precisa da linha inteira para afetá-la.
  • List:
    • Colocando * , +, ... o aplica nas linhas. |* , |+, ... também podem ser aplicados.
    • É possível colocar uma cadeia de formats: +|+ coloca um item + seguido de um item |+.
    • Adicionando um número, o item pode afetar uma quantidade de linhas: *+2|+3-|-4.|. coloca uma série de itens: *, +, +, |+, |+, ... A hierarquia é aplicada toda de uma só vez!
    • Pode ser sobrescrita por List na linha, não aplicando se já está lá.
    • Se não tiver um número, o último é aplicado várias vezes, e os anteriores apenas 1 vez.
      • Basicamente, a quantidade padrão é 1, mas n para o último item.
  • Como em List, o mesmo pode ser feito para Citation, Line, e Anchor.
  • Renomear TextStyler para Styler?

MMD | Tab quebra em List

  • Para cada nível, o tab parece aumentar de tamanho, até atingir seu tamanho padrão.
  • De alguma forma, o leftIndent afeta o tamanho do tab.

Tree | Commands

  • É necessário #17
  • Tudo é movido em "ticks", evitando travar caso ocorram loops.
  • Em um menu: Menu > Exibir > Mostrar Opção de Comando adiciona opção de tornar um mod em um CommandMod.
  • Um mod com comando se torna destacado.
    • Em seu uma janela de Texto, um botão com uma seta > pode ser clicado para executar o comando.
  • Variáveis de mod e cox: color, visibility, text[i], textCharacterQuantity, textParagraphQuantity
  • Variáveis:
    • mod: x, y, width, height, icon[i], coxs[i].
    • cox: modMom, modSon, nods[i].
    • nod: x, y, cox.
    • cursor: x, y, state.
    • areaSelec: x, y, width, height, state.
    • screen: x, y, width, height, zoom.
    • gerais: objsFocused[i], objsHightlighted[i], objsHovered[i].
    • Há muito mais.
  • Casos úteis:
    • Alinhar mods em uma lista sem intersecção entre eles:
mod2.y = mod1.y + mod1.height;
mod2.x = mod1.x;
mod2.coxs[0].nods[0].x = mod2.x-2;
mod2.coxs[0].nods[0].y = mod2.y+mod2.height/2;
  • Mudar cor do mod de acordo com a quantidade de linhas de seu texto.
  • Animação! Um texto cheio de #00FF00 valores definem as cores, e centenas de mods são alterados para todos formarem uma tela! Alterado a cada tick, é um vídeo!
  • Jogo de tetrix!
  • Mecânica:
    • Um mod2 que use propriedades de um mod1 faz com que este tenha "hooks" que são ativados quando suas propriedades mudam, atualizando mod2.

Tree | Adicionar opção de tornar cox invisível

No toolbox, adicionar opção de Visível, que define se cox será visível e selecionável, o que torna sistemas de múltiplas relações bem mais simples, evitando a imensa poluição de linhas na tela.

  • Se múltiplos coxs forem selecionados, a opção será desmarcada caso um deles esteja invisível.
  • No menu, adicionar Visível também.
  • Ao selecionar um mod, todos os seus coxs invisíveis se tornam visíveis e selecionáveis.
    • Um cox somente se torna invisível se estiver no state unselected, se tornando visível nos outros.

MMD | Adicionar opção de colorir

  • Cinza é uma cor estática e sem graça. Adicionar opção de mudar a cor.
  • List:
    • *{#FF00FF}, +{#FF00FF}, ... muda a cor do item e a linha que segue abaixo.
    • Ótimo para deixar claro do que cada item se trata.
  • Citation:
    • >{#FF00FF##FF00FF} muda a cor da linha e a cor de fundo.
    • Os |> abaixo usam as mesmas cores.
  • Line:
    • ==={#FF00FF} muda a cor da linha.
  • (Pode ser considerado simples: Add o regex, add na class, e use no draw).

MMD | Opção de copiar texto formatado todo

  • Em um toolbox, há uma opção de copiar apenas texto modificado por um format.
    • Ela muda de acordo com o que é clicado(Texto comum ou texto formatado).
      • "Copiar texto <Formato>".
      • "Copiar".
  • Ex.: Link, Highlight, Hidden, etc.
    • @texto@, ele pode ser copiado por inteiro sem precisar ser selecionado.

Tree | Permitir esconder o nome de mods

  • Adicionar opção de esconder o título de mods, prefeito para não exibir dados pessoais se for compartilhar algo.
    • O título, normalmente um ---, se torna visível se o mod é selecionado.
    • Os coxs não são afetados.

Tree | Mod se conecta a ele mesmo

  • Texto fica preso em um cox que liga um mod a ele mesmo...?
    • Aparentemente, é possível arrastar o CONNECT_COX para o próprio mod_son, nomeando Texto como "mod_son -> mod_son.".
  • Há também um cox conectado ao nada...?

MMD | Fundo de TextStyler quebra com palavras longas

  • Ao inserir uma palavra longa o bastante para ser quebrada na próxima linha, o fundo não começa do início da linha, mas do index da palavra.
  • Ex.: TextoTextoTexto :[PalavraLongaOBastanteParaSerQuebradaNaLinha]{###red}.
    • O fundo vermelho começaria não no começo da próxima linha, mas apenas após TextoTextoTexto, deixando uma parte da palavra exposta.

MMD | Implementar nesting de []{}

  • Para cada [, um nível "sobe". e para cada ] um nível "desce".
  • Ex. com o TextStyler: :[Texto vermelho :[Texto vermelho com o fundo verde]{##green} Texto vermelho]{#red}.
  • Link pode aceitar outros Links dentro dele.
  • Image ignora tudo e considera apenas o primeiro [ e o último ].

Tree | Implementar undo/redo de seleções

  • Adicionar opção de undo/redo ações como seleção de texto, seleção de mods-a-serem-son, etc?
  • Seria excelente para evitar ter de reselecionar tudo ao acidentalmente os deselecionar.

Tree | Permitir vários coxs entre dois mods

  • Podem existir vários coxs "iguais" entre dois mods, contanto que tenham uma quantidade diferente de nods.
  • Caso a quantidade de nods seja modificado e dois coxs fiquem iguais, um deles é deletado.
    • E se houverem texto...?

MMD | Detalhes

  • List:
    • Ao enter, automaticamente adicionar um item na nova linha.
      • Enter novamente cria uma nova linha normal.
  • O texto pisca normal logo antes de formatar MMD. Há conserto?
    • A única opção é optimizar MMD?
  • O texto após tab tende a bugar muito. Há conserto?
  • StyledText:
    • Ao marcar o texto, também conseguir o index das tags e as considerar para descobrir se está no fim da linha, podendo marcar a linha para ser colorida até seu fim.
  • SizeModifier:
    • Bug: Acaba no começo da próxima linha. Deveria acabar no fim.

Tree | Seleção incorreta de cox

O cox é selecionado com a área mesmo estando abaixo de seu mod-pai ou mod-son.
Determinar as pontas para serem não no centro, mas na borda do mod?

Tree | Melhorar toolbox de icones

  • Uma Grade de Icones permitiria deletar, mover, e substituir icones do mod.
  • Subicones:
    • Um Bloco com 1 item pode abrir outro menu com mais opções suas.
    • Cores e gradientes seus, icones e variações coloridas suas, etc.

Tree | Permitir que cox possa se conectar em diferentes pontos de mod

  • Ao conectar a um mod, o cox pode escolher se conectar por um dos diversos pontos no mod: Meio, ou um dos diversos nas laterais(Um no canto de cada UNIT da grade).
    • São definidos por pequenos x que permanecem no mesmo tamanho não importando o zoom.
    • Ao selecionar um cox, é possível mudar a sua ponta de lugar, possivelmente até o mudando para conectar outro mod.
  • O ponto de conexão é dado por coordenadas XY, que formam o id, o local onde a ponta se localiza em relação ao XY de mod.
    • Caso o tamanho de mod mude, as coordenadas permanecem a mesma, permitindo que mesmo que o mod diminua de tamanho, ao aumentar, as pontas automaticamente se separam de volta à posição anterior.
      • Ao diminuir de tamanho, as pontas são jogadas uma em cima da outra, ou seja, se a coordenada XY for maior do que o tamanho do mod, as pontas simplesmente ficam no limite, na ponta do mod.
      • Mesmo salvando e recarregando, as coordenadas da ponta permanecem a mesma, apenas a alterando manualmente que a sua posição colapsada é definida como definitiva.
  • Exemplo:
	<cox border="0" pai="mod#98234832" tip="-1" son="mod#54459732" width="0" tip="2,1">
		<text/>
	</cox>
  • Este se conecta ao mod#98234832 no meio e no mod mod#54459732 na coordenada mod.X+2 e mod.Y+1
    • Mesmo se o tamanho do mod for 1,1, significa que o cox se conecta no ponto 1,1, no limite do mod, e irá nas coordenadas 2,1 assim que o tamanho do mod aumentar.

Tree | Quebra de linha em Titulo

Se o texto ficar grande demais, ocorre uma quebra de linha no Titulo.

  • Ocorre apenas em certas ocasiões.
  • Ao colar um texto com um tab incluído, ele não é filtrado.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.