Skip to content

Commit

Permalink
Icons for files without extenstions #459, Icons for file with only on…
Browse files Browse the repository at this point in the history
…e extension #469, added icons to some new files and folders
  • Loading branch information
Agent K committed Apr 29, 2024
1 parent 5f5d235 commit eaa3b32
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 11 deletions.
38 changes: 28 additions & 10 deletions lib/colorls/core.rb
Original file line number Diff line number Diff line change
Expand Up @@ -431,22 +431,40 @@ def file_color(file, key)

def options(content)
if content.directory?
key = content.name.downcase.to_sym
key = @folder_aliases[key] unless @folders.key? key
key = :folder if key.nil?
color = @colors[:dir]
group = :folders
dir_options(content)
else
key = File.extname(content.name).delete_prefix('.').downcase.to_sym
key = @file_aliases[key] unless @files.key? key
color = file_color(content, key)
group = @files.key?(key) ? :recognized_files : :unrecognized_files
key = :file if key.nil?
file_options(content)
end
end

def dir_options(content)
key = content.name.downcase.to_sym
key = @folder_aliases[key] unless @folders.key? key
key = :folder if key.nil?
color = @colors[:dir]
group = :folders
[key, color, group]
end

def file_options(content)
key = determine_key_for_file(content)
key = @file_aliases[key] unless @files.key? key
color = file_color(content, key)
group = @files.key?(key) ? :recognized_files : :unrecognized_files
key = :file if key.nil?
[key, color, group]
end

def determine_key_for_file(content)
extension = File.extname(content.name).delete_prefix('.').downcase
if extension.empty?
filename = content.name.match(/\A\.?(.+)/)[1]
filename.downcase.to_sym
else
extension.to_sym
end || :default
end

def tree_contents(path)
@contents = Dir.entries(path, encoding: ColorLS.file_encoding)

Expand Down
48 changes: 48 additions & 0 deletions lib/yaml/file_aliases.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ mp3: audio
ogg: audio
opus: audio
wav: audio
h: c
editorconfig: conf
chh: cpp
cxx: cpp
hpp: cpp
scss: css
docx: doc
gdoc: doc
Expand All @@ -20,9 +24,14 @@ otf: font
ttf: font
woff: font
woff2: font
gitattributes: git
gitconfig: git
gitignore: git
gitignore_global: git
gitkeep: git
gitmodules: git
gitreflog: git
wget-hsts: history
lhs: hs
avif: image
bmp: image
Expand All @@ -41,6 +50,10 @@ webp: image
jar: java
properties: json
tsx: jsx
lesshst: less
depend: makefile
make: makefile
mk: makefile
license: md
markdown: md
mkd: md
Expand All @@ -50,13 +63,20 @@ gslides: ppt
odp: ppt
pptx: ppt
ipynb: py
pxd: py
pyc: py
pyd: py
pyi: py
pyo: py
pyx: py
rdata: r
rds: r
rhistory: r
gemfile: rb
gemspec: rb
guardfile: rb
lock: rb
mkshrc: rb
procfile: rb
rakefile: rb
rspec: rb
Expand All @@ -66,13 +86,31 @@ ru: rb
erb: rubydoc
slim: rubydoc
bash: shell
bash_aliases: shell
bash_completion: shell
bash_env: shell
bash_functions: shell
bash_history: shell
bash_logout: shell
bash_profile: shell
bashrc: shell
environment: shell
fish: shell
inputrc: shell
oh-my-zsh: shell
osh-update: shell
pre-oh-my-zsh: shell
profile: shell
sh: shell
zlogin: shell
zlogout: shell
zprofile: shell
zsh: shell
zsh-syntax-highlighting: shell
zsh-theme: shell
zsh-update: shell
zsh_history: shell
zshenv: shell
zshrc: shell
stylus: styl
cls: tex
Expand All @@ -83,6 +121,14 @@ mov: video
mp4: video
ogv: video
webm: video
exrc: vim
gvimrc: vim
vim-update: vim
vimbackup: vim
viminfo: vim
vimrc: vim
vimswap: vim
vimtags: vim
bat: windows
exe: windows
ini: windows
Expand All @@ -93,6 +139,8 @@ xlsx: xls
xul: xml
yaml: yml
7z: zip
bz: zip
bz2: zip
gz: zip
rar: zip
tar: zip
Expand Down
4 changes: 3 additions & 1 deletion lib/yaml/files.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ gform: ""
git: ""
go: ""
gruntfile.js: ""
history: ""
hs: ""
html: ""
image: ""
Expand All @@ -36,6 +37,7 @@ jsx: ""
less: ""
log: ""
lua: ""
makefile: ""
md: ""
mustache: ""
npmignore: ""
Expand All @@ -62,7 +64,7 @@ ts: ""
twig: ""
txt: ""
video: ""
vim: ""
vim: ""
vue: ""
windows: ""
xls: ""
Expand Down
35 changes: 35 additions & 0 deletions lib/yaml/folders.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,46 @@
.atom: ""
.cache: ""
.config: ""
.dotnet: "󰪮"
.git: ""
.github: ""
.local: ""
.mono: "󰪮"
.pyenv: ""
.rbenv: ""
.repo: ""
.ruby-lsp: ""
.rustup: ""
.rvm: ""
.ssh: "󰣀"
.tmux: ""
.Trash: ""
.venv: ""
.vim: ""
.vscode: ""
.vscode-insiders: ""
.vscode-r: ""
.vscode-remote-containers: ""
.vscode-server: ""
.vscode-server-insiders: ""
__pycache__: ""
config: ""
coverage: ""
dist-packages: ""
eggs: ""
exe: ""
folder: ""
go: ""
hidden: ""
lib: ""
man: "󰗚"
node_modules: ""
pkg: ""
site-packages: ""
spec: "󰙨"
src: "󰳐"
test: "󰙨"
tests: "󰙨"
venv: ""
wheels: ""

0 comments on commit eaa3b32

Please sign in to comment.