I'm trying to locate every instance of an expression in an open source project. Sublime text lets me do a search within a file for an expression like this with command F (on a Mac)
socket.on('api:admin.user.makeAdmin..
and SublimeText also lets me search for the names of files in the project but I don't know how to search multiple files for an expression that might occur anywhere. Since, for example, a socket can be listening for an emit anywhere in a project, it's hard to track down where the listeners are. However, this question obviously applies to more situations than that one example. If I can't do it with SublimeText is there another way to do it?
You're looking for Find In Files. Activate it with ctrl + shift + F.
Sublime also has Find In Files where you specify a directory and can include subdirectories as well.
So for Find you type in the text you are looking for. In Where you select the root project folder, then it will search all subfolders and files for your string entered in Find. There is also a Replace entry which you can use as well.
Related
Is there a way to share types across fsx files?
When using #load to load the same file containing a type from multiple FSX files they seem to be prefixed into a different FS_00xx namespace each time, which means you can't pass them around.
Are there any ways around this behaviour without resorting to compiling into an assembly?
As for
http://msdn.microsoft.com/en-us/library/dd233169.aspx
[.fsx files are] used to include informal testing code in F# without adding the test code to your application, and without creating a separate project for it. By default, script files are not included in the build of a project even when they are part of a project.
This means that if you have a project with enough structure to be having such dependency problems, you should not use .fsx files, instead write modules/namespaces using .fs files. That is, you really should compile them types into an assembly.
The f# interactive interpreter generates assembly for each loaded files. If you load a file twice, the bytecode is generated twice, and the types are different even if they have the same definition and the same name. This means that there is no way for you to share types between two .fsx files, unless one of them includes the other.
When you #load a file which has the same types as ones already present in your environment, the f# interactive interpreter can use two different strategy:
refuse to load the file if conflicts with existing names arises (complaining that some stuff is already defined)
put the names in FS_00xx namespace (so that they are actually different types from the ones you already loaded), eventually opening the resulting namespace so that names are available from interactive session.
Since fsx files are supposed to be used as informal test it is more user-friendly to use the second approach (there are also technical reason for which the second approach is used, mainly dependent on .net VM type system, and the fact that existing types cannot be changed at runtime).
[Note: This is a more specific answer to a more specific question that is a duplicate of this one.]
I don't think there is a nice and easy solution for this. The one solution I have been using in some projects (like the F# snippets web site) is to have only one top-level fsx file that loads a number of fs files. For example, see app.fsx.
So, you would have common.fs, intMapper.fs and stringMapper.fs that would be loaded from caller.fsx as follows:
#load "common.fs"
#load "stringMapper.fs"
#load "intMapper.fs"
open Common
Inside stringMapper.fs and intMapper.fs, you do not load common.fs. The common types will be loaded by caller.fsx before, so things will work.
The only issue with this is that intMapper.fs now isn't a standalone script file - and if you want to get autocomplete in an editor, you need to add a fsproj file that specifies the file order. In F# snippets project, there is a project file which specifies the order in whch the editor should see and load the files.
Have all the #load and #open directives in the file you actually run from fsi.exe (C in the example below), and make sure the loaded files themselves do not #load their own dependencies:
Files A.fsx, B.fsx, C.fsx. B depends on A. C depends on B and A.
B contains
//adding the code below would cause the types defined in A to be loaded twice
//#load "A.fsx"
//#open A
C contains
#load "A.fsx"
#open A
#load "B.fsx"
#open B
Unfortunately this then makes all the files hard to edit from Visual Studio - the editor doesn't know about their dependencies and shows all sorts of errors.
Therefore this is a bit of a hack, and the recommended way seems to be to have a single .fsx file and compile everything else into a .dll :
// file1.fsx
#r "MyAssembly.dll"
https://msdn.microsoft.com/en-us/library/dd233175.aspx
I have this project localized in several languages. Xcode shows the following list of files:
You can see that some languages have more files than others. Is there a way to list what files are missing on each language?
Yes, I know that I can use the parameter -NSShowNonLocalizedStrings YES as an argument passed on launch. I did that but that is not showing anything.
This is an indirect answer to your question; If you have that many .strings files you might want to organise them more structurally.
You could put all translatable strings in either a database or a spreadsheet and generate your source files from there. This may sound like more work but I think in the end it saves time.
See this other question about consolidating strings files. Or see my example spreadsheet to manage your localisations and spot missing texts more easily.
How can I change a file type?
A year ago I wrote a few articles that should be viewed in any text type of program. however, I recently opened them and they are viewed in symbols and alphanumeric characters. In linux os, the 'file' is now in an archived folder type that contains .xml files. in windows os it is 'file' as type of file. it has no extension.
Is there any way to recover the original readable alpha-numeric information in these files?
My preference would be to salvage the original information than redo.
First off the extension doesn't actually mean anything for the information of the file, it's only purpose is as a hint to the OS for deciding which application should be used in opening the file. You can prove this by renaming something like an exe to have a txt extension which will then open in notepad as a lot of seemingly random characters; renaming it back to exe will allow it to run again.
Based on your description the files you mention are some form of binary file, the bad news with that is you need to know either what application was used to create the file in order to be able to open it or what the original file extension was (which would be a hint to the former).
If you don't know either of those pieces of information you can of course use trial and error by guessing what extension it might be, renaming it, then opening it with the associated application and seeing if it worked.
Do you know if I can use this on a folder and all the files within that folder will not be backed up? (in other words a folder rather than a file) I have a lot of code written accessing PDF files within several folders located in the special path documents folder. It would be pretty easy for me to set the do not back up of each one of those 7 folders but would rather not set the do not back up on each one of the 300 files within those 7 folders.
The same PDF`s folders also exist on my web server and so they can be updated or replaced if needed from there in the event they get deleted. Do you think Apple would be OK with me leaving them in the Documents/PDFDIR folders and setting the do not back up of those (7) folders?
This question was asked in a private support context, however, I felt it was valuable to answer here for others.
Yes it is. This property is recursive. While it's not really a duplicate answer because it's about a different language there is this answer here that backs up my answer in objective-c.
does anyone know how to change alt-a (replace all) in scite's replace dialog to another shortcut? thanks a lot!
2 methods:
1. Use ResourceHacker and the uncompressed verion of SciTE.
You can get it from http://www.angusj.com/resourcehacker/
Open SciTE.exe with it, go to dialogs/400/1033.
Change the line that starts with
CONTROL "Replace &All"
Then recompile script.
2. recompile the source code...
Unzip the scite source and look for win32\SciTERes.rc
Roundabout line 400 you find the following line:
PUSHBUTTON "Replace &All",IDREPLACEALL,190,41,90,14
You can move the ampersand to a different position to change the shortcut key.
Then recompile SciTE
You can change one of ScITE's profile files by selecting from the Options menu. I usually change the User-level profile but the Global file is useful for seeing a more exhaustive list of settings.
Note 1: If you are the only user, you could change the Global settings but the User-level is just fine. One advantage to changing the User file, at lease in my case, is that User-level file (named .SciTEUser.properties) is saved in my /home/user_name directory -- I'm using Linux -- so it's included in my data backups.
Note 2: I found that altering ScITE settings is like shopping at Costco. You go in with a $30 shopping list in mind and leave $300 later. The number of things you can customize in ScITE is spectacular. It's the first time I have had an editor that feels tailor-made.
The ScITE website provides the documentation. Specifically, you'll want to look for "user.shortcuts" in this link. That section provides a link to all of the commands.