├── Adaptive.sublime-theme ├── Default Dark.sublime-theme ├── Default.sublime-theme ├── LICENSE ├── README.md └── textures ├── added.png ├── added@2x.png ├── added@3x.png ├── modified.png ├── modified@2x.png ├── modified@3x.png ├── staged.png ├── staged@2x.png ├── staged@3x.png ├── untracked.png ├── untracked@2x.png └── untracked@3x.png /Adaptive.sublime-theme: -------------------------------------------------------------------------------- 1 | { 2 | "rules" : [ 3 | // Deleted file or staged deleted file (visible only at folders) 4 | { 5 | "class": "vcs_status_badge", 6 | "parents": [{"class": "file_system_entry", "attributes": ["deleted"]}], 7 | "layer0.tint": "color(var(--redish) min-contrast(var(--background) 2.5))", 8 | "layer0.opacity": 0.6, 9 | "content_margin": 6 10 | }, 11 | { 12 | "class": "vcs_status_badge", 13 | "parents": [{"class": "file_system_entry", "attributes": ["missing"]}], 14 | "layer0.tint": "color(var(--redish) min-contrast(var(--background) 2.5))", 15 | "layer0.opacity": 0.6, 16 | "content_margin": 6 17 | }, 18 | 19 | // Untracked files or staged untracked (added) - Green color 20 | { 21 | "class": "vcs_status_badge", 22 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 23 | "layer0.texture": "Git badges like VS Code/textures/added.png", 24 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%))", 25 | "layer0.opacity": 0.7, 26 | "content_margin": 6 27 | }, 28 | { 29 | "class": "sidebar_label", 30 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 31 | "color": "color(var(--greenish) blend(var(--bluish) 50%) min-contrast(var(--background) 2.5))" 32 | }, 33 | { 34 | "class": "vcs_status_badge", 35 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 36 | "layer0.texture": "Git badges like VS Code/textures/untracked.png", 37 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%))", 38 | "layer0.opacity": 0.7, 39 | "layer0.draw_center": true, 40 | "content_margin": 6 41 | }, 42 | { 43 | "class": "sidebar_label", 44 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 45 | "color": "color(var(--greenish) blend(var(--bluish) 50%) min-contrast(var(--background) 2.5))" 46 | }, 47 | 48 | // Modified file or staged modified file - Yellow color 49 | { 50 | "class": "vcs_status_badge", 51 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 52 | "layer0.texture": "Git badges like VS Code/textures/staged.png", 53 | "layer0.tint": "var(--yellowish)", 54 | "layer0.opacity": 0.5, 55 | "content_margin": 6 56 | }, 57 | { 58 | "class": "sidebar_label", 59 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 60 | "color": "color(var(--yellowish) min-contrast(var(--background) 2.5))" 61 | }, 62 | { 63 | "class": "vcs_status_badge", 64 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 65 | "layer0.texture": "Git badges like VS Code/textures/modified.png", 66 | "layer0.tint": "var(--yellowish)", 67 | "layer0.opacity": 0.5, 68 | "content_margin": 6 69 | }, 70 | { 71 | "class": "sidebar_label", 72 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 73 | "color": "color(var(--yellowish) min-contrast(var(--background) 2.5))" 74 | }, 75 | 76 | // Conflicted merge 77 | { 78 | "class": "vcs_status_badge", 79 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 80 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 81 | "layer0.tint": "var(--pinkish)", 82 | "layer0.opacity": 1.0, 83 | "content_margin": 6 84 | }, 85 | { 86 | "class": "sidebar_label", 87 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 88 | "color": "color(var(--pinkish) min-contrast(var(--background) 2.5))" 89 | }, 90 | 91 | // At folder always show circle and inherit color from above 92 | { 93 | "class": "vcs_status_badge", 94 | "parents": [{"class": "tree_row", "attributes": ["expandable"]}], 95 | "layer0.texture": "Theme - Default/common/status_modified.png", 96 | }, 97 | // Except unmerged status 98 | { 99 | "class": "vcs_status_badge", 100 | "parents": [ 101 | {"class": "tree_row", "attributes": ["expandable"]}, 102 | {"class": "file_system_entry", "attributes": ["unmerged"]} 103 | ], 104 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 105 | }, 106 | ] 107 | } 108 | -------------------------------------------------------------------------------- /Default Dark.sublime-theme: -------------------------------------------------------------------------------- 1 | { 2 | "rules" : [ 3 | // Deleted file or staged deleted file (visible only at folders) 4 | { 5 | "class": "vcs_status_badge", 6 | "parents": [{"class": "file_system_entry", "attributes": ["deleted"]}], 7 | "layer0.tint": "color(var(--redish) min-contrast(var(--background) 2.5))", 8 | "layer0.opacity": 0.6, 9 | "content_margin": 6 10 | }, 11 | { 12 | "class": "vcs_status_badge", 13 | "parents": [{"class": "file_system_entry", "attributes": ["missing"]}], 14 | "layer0.tint": "color(var(--redish) min-contrast(var(--background) 2.5))", 15 | "layer0.opacity": 0.6, 16 | "content_margin": 6 17 | }, 18 | 19 | // Untracked files or staged untracked (added) - Green color 20 | { 21 | "class": "vcs_status_badge", 22 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 23 | "layer0.texture": "Git badges like VS Code/textures/added.png", 24 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%))", 25 | "layer0.opacity": 0.7, 26 | "content_margin": 6 27 | }, 28 | { 29 | "class": "sidebar_label", 30 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 31 | "color": "color(var(--greenish) blend(var(--bluish) 50%) min-contrast(var(--background) 2.5))" 32 | }, 33 | { 34 | "class": "vcs_status_badge", 35 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 36 | "layer0.texture": "Git badges like VS Code/textures/untracked.png", 37 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%))", 38 | "layer0.opacity": 0.7, 39 | "layer0.draw_center": true, 40 | "content_margin": 6 41 | }, 42 | { 43 | "class": "sidebar_label", 44 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 45 | "color": "color(var(--greenish) blend(var(--bluish) 50%) min-contrast(var(--background) 2.5))" 46 | }, 47 | 48 | // Modified file or staged modified file - Yellow color 49 | { 50 | "class": "vcs_status_badge", 51 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 52 | "layer0.texture": "Git badges like VS Code/textures/staged.png", 53 | "layer0.tint": "var(--yellowish)", 54 | "layer0.opacity": 0.5, 55 | "content_margin": 6 56 | }, 57 | { 58 | "class": "sidebar_label", 59 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 60 | "color": "color(var(--yellowish) min-contrast(var(--background) 2.5))" 61 | }, 62 | { 63 | "class": "vcs_status_badge", 64 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 65 | "layer0.texture": "Git badges like VS Code/textures/modified.png", 66 | "layer0.tint": "var(--yellowish)", 67 | "layer0.opacity": 0.5, 68 | "content_margin": 6 69 | }, 70 | { 71 | "class": "sidebar_label", 72 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 73 | "color": "color(var(--yellowish) min-contrast(var(--background) 2.5))" 74 | }, 75 | 76 | // Conflicted merge 77 | { 78 | "class": "vcs_status_badge", 79 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 80 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 81 | "layer0.tint": "var(--pinkish)", 82 | "layer0.opacity": 1.0, 83 | "content_margin": 6 84 | }, 85 | { 86 | "class": "sidebar_label", 87 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 88 | "color": "color(var(--pinkish) min-contrast(var(--background) 2.5))" 89 | }, 90 | 91 | // At folder always show circle and inherit color from above 92 | { 93 | "class": "vcs_status_badge", 94 | "parents": [{"class": "tree_row", "attributes": ["expandable"]}], 95 | "layer0.texture": "Theme - Default/common/status_modified.png", 96 | }, 97 | // Except unmerged status 98 | { 99 | "class": "vcs_status_badge", 100 | "parents": [ 101 | {"class": "tree_row", "attributes": ["expandable"]}, 102 | {"class": "file_system_entry", "attributes": ["unmerged"]} 103 | ], 104 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 105 | }, 106 | ] 107 | } 108 | -------------------------------------------------------------------------------- /Default.sublime-theme: -------------------------------------------------------------------------------- 1 | { 2 | "rules" : [ 3 | // Deleted file or staged deleted file (visible only at folders) 4 | { 5 | "class": "vcs_status_badge", 6 | "parents": [{"class": "file_system_entry", "attributes": ["deleted"]}], 7 | "layer0.tint": "color(var(--redish))", 8 | "layer0.opacity": 0.8, 9 | "content_margin": 6 10 | }, 11 | { 12 | "class": "vcs_status_badge", 13 | "parents": [{"class": "file_system_entry", "attributes": ["missing"]}], 14 | "layer0.tint": "color(var(--redish))", 15 | "layer0.opacity": 0.8, 16 | "content_margin": 6 17 | }, 18 | 19 | // Untracked files or staged untracked (added) - Green color 20 | { 21 | "class": "vcs_status_badge", 22 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 23 | "layer0.texture": "Git badges like VS Code/textures/added.png", 24 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%) blend(rgb(0, 0, 0) 80%))", 25 | "layer0.opacity": 1, 26 | "content_margin": 6 27 | }, 28 | { 29 | "class": "sidebar_label", 30 | "parents": [{"class": "file_system_entry", "attributes": ["added"]}], 31 | "color": "color(var(--greenish) blend(var(--bluish) 50%) blend(rgb(0, 0, 0) 60%))" 32 | }, 33 | { 34 | "class": "vcs_status_badge", 35 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 36 | "layer0.texture": "Git badges like VS Code/textures/untracked.png", 37 | "layer0.tint": "color(var(--greenish) blend(var(--bluish) 50%) blend(rgb(0, 0, 0) 80%))", 38 | "layer0.opacity": 1, 39 | "layer0.draw_center": true, 40 | "content_margin": 6 41 | }, 42 | { 43 | "class": "sidebar_label", 44 | "parents": [{"class": "file_system_entry", "attributes": ["untracked"]}], 45 | "color": "color(var(--greenish) blend(var(--bluish) 50%) blend(rgb(0, 0, 0) 60%))" 46 | }, 47 | 48 | // Modified file or staged modified file - Yellow color 49 | { 50 | "class": "vcs_status_badge", 51 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 52 | "layer0.texture": "Git badges like VS Code/textures/staged.png", 53 | "layer0.tint": "color(var(--yellowish) blend(rgb(0, 0, 0) 60%)", 54 | "layer0.opacity": 0.8, 55 | "content_margin": 6 56 | }, 57 | { 58 | "class": "vcs_status_badge", 59 | "parents": [{"class": "tree_row", "attributes": ["expandable"]}, {"class": "file_system_entry", "attributes": ["staged"]}], 60 | "layer0.tint": "color(var(--yellowish) blend(rgb(0, 0, 0) 90%)", 61 | }, 62 | { 63 | "class": "sidebar_label", 64 | "parents": [{"class": "file_system_entry", "attributes": ["staged"]}], 65 | "color": "color(var(--yellowish) blend(rgb(0, 0, 0) 60%))" 66 | }, 67 | { 68 | "class": "vcs_status_badge", 69 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 70 | "layer0.texture": "Git badges like VS Code/textures/modified.png", 71 | "layer0.tint": "color(var(--yellowish) blend(rgb(0, 0, 0) 60%)", 72 | "layer0.opacity": 0.8, 73 | "content_margin": 6 74 | }, 75 | { 76 | "class": "vcs_status_badge", 77 | "parents": [{"class": "tree_row", "attributes": ["expandable"]}, {"class": "file_system_entry", "attributes": ["modified"]}], 78 | "layer0.tint": "color(var(--yellowish) blend(rgb(0, 0, 0) 90%)", 79 | }, 80 | { 81 | "class": "sidebar_label", 82 | "parents": [{"class": "file_system_entry", "attributes": ["modified"]}], 83 | "color": "color(var(--yellowish) blend(rgb(0, 0, 0) 60%))" 84 | }, 85 | 86 | // Conflicted merge 87 | { 88 | "class": "vcs_status_badge", 89 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 90 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 91 | "layer0.tint": "var(--pinkish)", 92 | "layer0.opacity": 1.0, 93 | "content_margin": 6 94 | }, 95 | { 96 | "class": "sidebar_label", 97 | "parents": [{"class": "file_system_entry", "attributes": ["unmerged"]}], 98 | "color": "color(var(--pinkish) blend(rgb(0, 0, 0) 60%))" 99 | }, 100 | 101 | // At folder always show circle and inherit color from above 102 | { 103 | "class": "vcs_status_badge", 104 | "parents": [{"class": "tree_row", "attributes": ["expandable"]}], 105 | "layer0.texture": "Theme - Default/common/status_modified.png", 106 | }, 107 | // Except unmerged status 108 | { 109 | "class": "vcs_status_badge", 110 | "parents": [ 111 | {"class": "tree_row", "attributes": ["expandable"]}, 112 | {"class": "file_system_entry", "attributes": ["unmerged"]} 113 | ], 114 | "layer0.texture": "Theme - Default/common/status_unmerged.png", 115 | }, 116 | ] 117 | } 118 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Pavel Kutáč 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # git badges like VS Code 2 | 3 | This plugin changes default Sublime Text git badges in left sidebar into VS Code looks. 4 | Instead of dots and chevrons there are letters `A`, `M`, `S` and `U`. Also colors are changed. 5 | 6 | Based on [OdatNurd's gist](https://gist.github.com/OdatNurd/4bb596e6162693567642b7aef4cab4c0) 7 | 8 | ## Install 9 | 10 | Install as plugin via [Package Control](https://packagecontrol.io/packages/Git%20badges%20like%20VS%20Code) 11 | 12 | > Note that this plugin works only on Sublime Text 3.2 and above *(>=3200)*, as in this version native git implementation was added. 13 | 14 | ### Usage with other than default themes 15 | 16 | If you are using another theme like Ayu or others, you cannot switch theme, but only color schema. 17 | Because there is difference between **Select color scheme** and **Select Theme**. 18 | 19 | So do the following: 20 | 21 | 1. Open command pallete (CTRL + Shift + P) and type **UI: Select Theme** and select Adaptive or Default/Default Dark. (**not** Ayu or others) 22 | 2. Open command pallete (CTRL + Shift + P) and type **UI: Select Color scheme** and select any of Ayu or others. 23 | 24 | ## How it looks 25 | 26 | ![New VC Code like badges](./screenshot.png) 27 | 28 | **Explanation:**
29 | - New files are **green** with `U` badge (untracked) or `A` badge when added to staging area 30 | - Modified files are **yellow** with `M` badge when unstaged or `S` badge when staged 31 | - Folder of deleted file has no color (red evoke error) but has **red** circle badge 32 | - Conflicted file is **red** with git merge badge 33 | - Folder has always circle badge (no letter or icon) except Conflicted 34 | 35 | ## Contribute 36 | 37 | Contribution is welcome. Leave an Issue or Pull request 38 | 39 | ### Icons 40 | 41 | Icons must be in PNG format in RGB mode (not palette mode). Use prepared PSD in [Photopea](https://www.photopea.com), which can export file in RGB mode. 42 | 43 | ## Changelog 44 | 45 | ### v1.2.0 46 | 47 | - Added new Default Dark theme, which was added in ST4 48 | - Improved looks in Default (light) and Adaptive theme 49 | 50 | ### v1.1.0 51 | 52 | - Create new `A`, `M`, `S` and `U` icons 53 | - Fixed path to custom icons 54 | 55 | -------------------------------------------------------------------------------- /textures/added.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/added.png -------------------------------------------------------------------------------- /textures/added@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/added@2x.png -------------------------------------------------------------------------------- /textures/added@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/added@3x.png -------------------------------------------------------------------------------- /textures/modified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/modified.png -------------------------------------------------------------------------------- /textures/modified@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/modified@2x.png -------------------------------------------------------------------------------- /textures/modified@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/modified@3x.png -------------------------------------------------------------------------------- /textures/staged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/staged.png -------------------------------------------------------------------------------- /textures/staged@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/staged@2x.png -------------------------------------------------------------------------------- /textures/staged@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/staged@3x.png -------------------------------------------------------------------------------- /textures/untracked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/untracked.png -------------------------------------------------------------------------------- /textures/untracked@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/untracked@2x.png -------------------------------------------------------------------------------- /textures/untracked@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arxeiss/Sublime-GitBadgesLikeVSCode/b8f772616a0d252f6db44524e908987e8a38db00/textures/untracked@3x.png --------------------------------------------------------------------------------