The best answer I think, so far, is this one by @Andreas Haferburg.
The most-upvoted answer also has some really useful information, such as the link to the spacegray package which states:
Manual
You can also install the theme manually:
- Download the .zip
- Unzip and rename the folder to
Theme - Spacegray
- Copy the folder into
Packages
directory, which you can find using the menu item Sublime Text
-> Preferences
-> Browse Packages...
That is where I first learned about the existence of the Packages
folder and how to find its path.
Using those answers together, plus putting in about 1 weekend worth of work into learning about how Sublime Text packages and syntax highlighting work, I wrote the following "Developer Notes & Package Development Tutorial", on GitHub, as well as these "manual installation" instructions.
In short, to "install a package" withOUT Package Control, all you need to do is put the package into your Sublime Text Packages
folder, whose path can be found by going to Preferences
--> Browse Packages...
. The folder name can be anything. It only needs to match what is inside the Installed Packages
dir (which is at the same level as the Packages
dir) if you want to override an already-installed package which was previously installed by Package Control in "packed" (zip file) format.
The main link you should study, aside from my tutorial, is this: https://packagecontrol.io/docs/customizing_packages.
1. How to manually install a package
Here are some of the key quotes and instructions from my manual installation instructions and tutorial.
Again, note that I am only requiring that the name in the Packages
folder be something specific like gcode
in the instructions below because my instructions are intended to override a Package-Control-installed package the reader may already have installed. If you want to install for the first time, or make a new package, the folder name you use inside the Packages
folder can be anything.
2. Manual installation
In Sublime Text, find the path to your Packages
folder by clicking Preferences
--> Browse Packages...
. This will open up your GUI file manager to the path where Sublime Text packages are stored. For me on Linux Ubuntu 20.04, that's /home/gabriel/.config/sublime-text-3/Packages
(even though I am running Sublime Text 4).
Now, extract this package to that folder.
Option 1: the GUI way: click the green "Code" button above --> "Download ZIP" --> save the zip file, extract it to your Packages
path above, and rename it to gcode
.
OR Option 2 [what I prefer]: the command-line way:
# --------------
# Option 2.A: clone the repo directly into your "Packages" dir
# --------------
# cd to the Packages dir (change this path according to your Packages path above)
cd "$HOME/.config/sublime-text-3/Packages"
# clone the repo
git clone https://github.com/ElectricRCAircraftGuy/sublime_gcode.git
# rename the repo dir to "gcode"
mv sublime_gcode gcode
# --------------
# OR Option 2.B [what I prefer]: clone the repo into wherever you want, and then
# symlink it into your "Packages" dir
# --------------
# clone repo into ~/dev
mkdir -p ~/dev
cd ~/dev
git clone https://github.com/ElectricRCAircraftGuy/sublime_gcode.git
# now symlink it into your Packages dir
ln -si ~/dev/sublime_gcode ~/.config/sublime-text-3/Packages/gcode
That's it! The gcode
entry is now instantly available in your syntax highlighting menu.
Developer Notes & Package Development Tutorial
...
...
...
Sublime Text packages and syntax highlighting--how it all works
And here are some really important notes about Sublime Text packages and how Package Control works:
1. Sublime Text packages
Any folder inside of your Sublime Text Packages
folder (found via Preferences
--> Browse Packages...
) is automatically instantly loaded by Sublime Text as a "package".
Packages installed by the Package Control
package, however, come in two types:
- Packed: most packages installed by Package Control are "packed" into a zip file named
packageName.sublime-package
and are located inside the Installed Packages
dir which is at the same level as the Packages
dir.
- If you manually create a dir inside the
Packages
dir and name it packageName
(to match the packed file above), then any files in it with the same name as those in the packed package will override those in the packed package. See the "Overrides" section here: https://packagecontrol.io/docs/customizing_packages.
- Unpacked: any package which is installed in the
Packages
dir is unpacked.
- Developers can tell Package Control to unpack a package installed by Package Control by placing a file named
.no-sublime-package
at the root of their repo. See here: https://packagecontrol.io/docs/submitting_a_package.
- Unpacked packages are required if they contain binary executables which need to be run by the system, for instance, as they apparently can't run from inside the packed zip file.
2. Syntax highlighting
Hopefully I got all of this straight.
If you want to learn more about Syntax Highlighting in Sublime Text, and how it maps to scope
entries in your Color Scheme, read my tutorial.
2. Test your changes
I am trying to fix a bug in an existing package, therefore I need a way to test my changes.
See also this section in my tutorial:
To modify and test changes to this package locally...
...in case you'd like to change it or contribute to it, follow the "manual installation" instructions above. If you have already installed it via Package Control, then what is in your /home/$USERNAME/.config/sublime-text-3/Packages/gcode
folder will override what is in your /home/$USERNAME/.config/sublime-text-3/Installed Packages/gcode.sublime-package
zip file which Package Control installed, so long as the folder and file names are the same.
Modify any files in the Packages/gcode
dir as desired. Each time you save, the changes will instantly be reflected in all Sublime Text editors you have open. As a quick test:
- Open a gcode file.
- Click your cursor on some text in the file.
- Use the
Tools
--> Developer
--> Show Scope Name
trick to see what the scope is for that text.
- Open the corresponding
*.sublime-syntax
file.
- Change or delete the regular expression in the
match
entry for that corresponding scope
you just found, so that it no longer matches the text on which you placed your cursor.
- Save the
*.sublime-syntax
file and you will instantly see the formatting of that text in the gcode file change.
- Undo your change to the
match
entry and save again. The formatting will return to how it was.
- Go to
Preferences
--> Customize Color Scheme
, and add a custom rules
entry for that scope, with new formatting for that scope
. Save it and watch the formatting instantly change again. Delete that custom entry when done, if desired.