Where are the themes stored in the Atom Editor? - syntax-highlighting

I would like to edit an existing theme that I have installed in my editor. I would like to make some personal changes to it.
Where can I find the file that defines the syntax? I did some researches on Google, but I don't seem to find an answer to my question!

On a Linux/UNIX based system, like a Mac, you can find your installed themes in your home directory:
ls -ald ~/.atom/packages/*-syntax ~/.atom/packages/*-ui

Related

Need to open my app after using a sharing extension. Just like Dropbox and Maps.me do

I tried it in my extension with context.openURL, but that is blocked by Apple.
This is what their documentation says:
Discussion:
Each extension point determines whether to support this method, or under which conditions to support this method. In iOS 8.0, only the Today extension point supports this method.
So how do I open my app after selecting to share a file from an email?
Dropbox does it and Maps.me does it, so there must be a way.
Edit: sharing extension was not the way to solve this. In the comments, Tom pointed me towards a SO post with the right stuff: How does "Open With" some app in iPhone work?
Those apps do not have share extensions. I don't know what you're looking at but the premise of your question is incorrect.
If you download Dropbox.app on a Mac and unzip the app package, it contains two extensions:
$ ls Payload/Dropbox.app/PlugIns/
DocPicker.appex/ DropboxTodayView.appex/
If you look in the Info.plist files for those extensions, you'll see that neither one is a share extension. DocPicker.appex is a file provider extension:
<key>NSExtensionPointIdentifier</key>
<string>com.apple.fileprovider-ui</string>
DropboxTodayView.appex is a today extension:
<key>NSExtensionPointIdentifier</key>
<string>com.apple.widget-extension</string>
Try the same with the Maps.me app, and you'll see it does not contain any extensions at all:
$ ls Payload/maps.me.app/PlugIns
ls: Payload/maps.me.app/PlugIns: No such file or directory
Apple's current restrictions make it impossible to open the containing app from a share extension.

Backing up ST3 settings

I find that the new Sublime Text preferences architecture is pretty convenient.
It basically has us putting the keymap, preferences, and package-specific preferences, syntax-filetype mappings, syntax definitions, and color themes, all into the Sublime Text 3/Packages/User directory.
This makes it very tempting to turn this directory itself into a git repo.
Is this the intended purpose?
by OS there are :
Gnu/Linux :
$(HOME)/.config/sublime-text-3/Packages/User/Package Control.sublime-settings/Package Control.sublime-settings
Windows :
%APPDATA%\sublime-text-3\Packages\User\Package Control.sublime-settings\Package Control.sublime-settings
Mac os x :
~/Library/Application Support/sublime-text-3/Packages/User/Package Control.sublime-settings/Package Control.sublime-settings
I suppose it permits to recover all the packages via the upgrade command.
I wouldn't know if it is the intended purpose, but I sure do. There's all a plugin available called sublimall that makes it pretty easy to sync packages, linters back and forth via machines. I've also used dropbox to sync pretty effortlessly just using symbolic links. I think that's been my favorite so far, but it doesn't have the backups and flexibility of git.
I back the USER directory on my dropbox account, and then set symlink to it from my sublime text folder. Works like a charm.

Can you Define $home as 'C:/user/%username%/' property for an installer

I've been looking through Property References and I cannot find anything that relates directly to 'C:/user/%username%/' or $home so I can install files to a folder generally in the "downloads" folder. Simplar to [AppDataFolder] but not to the roaming folder.
You will not find a predefined property for that folder, you need to create the path at install time. The following article explains how you can do it with Advanced Installer, I don't know what tool you are using but maybe you can get the same done with it too.
http://www.advancedinstaller.com/user-guide/qa-custom-folder.html
Also, this should be possible to achieve with the free edition of Advanced Installer too, i.e. "Simple" project type.

PackageMaker for creating Mac packages on Windows/Linux

We need to build Mac packages on the fly and it would be convenient if there is a way to create the same on Windows or Linux platform instead of using PackageMaker on Mac. Any ideas?
I don't agree that this is impossible. You could certainly do all the things PackageMaker does on OSX on another OS. It's just a matter of creating these files:
Contents/
Archive.bom
Archive.pax.gz
Info.plist
PkgInfo
Resources/
TokenDefinitions.plist
package_version
en.lproj/
Description.plist
The .plist files can easily be created in Python with plistlib which is now standard in Python. The .bom and .pax.gz are a bit trickier but the rest are all text files.
The .gz part of the .pax.gz file means it is compressed with gzip. This is available on Windows and Linux.
According to the pax man page a pax file can actually be in several different archive formats including cpio and tar, also easy to do in Linux or Windows. PackageMaker seems to create compressed cpio files, at least on 10.6.
The .bom file is a list of all the files in the package and their sizes. It is probably the hardest part to create outside of OSX. BOM stands for Bill Of Materials and comes from the NextSTEP operating system. I haven't been able to find much information about the BOM format but here are some clues: NextSTEP bom man page, OSX bom man page
Edit: I've now implemented a version of lsbom which I've placed in the public domain. The code can be found in Subversion here: https://cauldrondevelopment.com/svn/osxbom/trunk
Perhaps someone can also implement mkbom and then there will be a complete solution. See the header file bom.h in the above code for a somewhat complete description of the BOM file format.
Edit 2: A working version of mkbom has now been implemented and can be found here:
https://github.com/hogliux/bomutils
along with a detailed tutorial on how to create an installer on linux:
http://hogliux.github.io/bomutils/tutorial.html
Also see the question how-to-build-native-mac-os-x-installer-on-a-non-mac-platform.
Nope, you can't. You could do a scripted ssh login and fire it off using osascript so you can automate the whole build from somewhere else, but you can only build for a Mac on a Mac.
You could do all the builds on a Mac, though. It's much easier that way around.

Good resources for learning to develop Firefox Extensions

I am looking for good resources to learn to develop Firefox extensions. Resources can be either books or tutorials on the net. Prefer basic tutorials as I am a newbie in the world of Firefox extensions but I have experience in Software Development so programming is not an issue.
This is a useful folder structure to get you started:
chrome (folder)
content (folder)
chrome.manifest
defaults (folder)
preferences (folder)
install.rdf
locale (folder)
en-US (folder)
skin (folder)
You start with the install.rdf file, which contains all the information about your extension (e.g. its name, your name, the version of Firefox it supports...)
Then work on the chrome.manifest file, which looks a little trickier, but is quite simple really.
THEN you get to start doing the interesting stuff! You can mess around with browser.xul, options.xul, etc etc. Plonk your css/images in the skin folder, and I expect you'll need to make a custom Javascript file which contains your extension logic (this goes in the chrome/content folder).
Finally packaging it is just a case of zipping the entire thing (not the folder containing your extension folders, just the folders themselves), and renaming it from .zip to .xpi - job done :)
There's an excellent step-by-step guide on the Mozilla Blog here, which goes into some real detail.
You can also find another example project here.
p.s. don't forget source control, bug tracking, internationalisation, etc etc. But don't start with that or you'll never have any fun :)
A great way to learn is
Right Click on the Add to Firefox link on the Add On download page.
Save the file.
Change its extension .xpi to .zip
Extract and hack the code.
Start with some simple Add-On.
Example : Hello World Firefox Add On
I learn it from HERE.
Other Good Resources:
Zero to “Hello World” in 45 Minutes
For some advanced stuff look at the code of TwitterFox
Here is a tutorial: http://www.rietta.com/firefox/Tutorial/overview.html
There are quite a few different resources - the official Mozilla Developer Network has a great step-by-step guide on how to create your first extension (Including an excellent tutorial on setting up the IDE).
Another great tutorial can be found here (external):
Kevin Gisi has also written a book aptly named "Firefox Extensions - Tools for Productivity" located here.
Found something useful
Extensions
Plugins

Resources