blob: 7b74a9b24d2dd07fb5ca059593a40a08a57e7545 [file] [log] [blame]
Jack Jansen3bbb6172002-07-29 21:36:35 +00001//
2// FileSettings.h
3// PythonLauncher
4//
5// Created by Jack Jansen on Sun Jul 21 2002.
6// Copyright (c) 2002 __MyCompanyName__. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10
11@protocol FileSettingsSource
12- (NSString *) interpreter;
Jack Jansen3d3b7462003-02-17 15:40:00 +000013- (BOOL) honourhashbang;
Jack Jansen3bbb6172002-07-29 21:36:35 +000014- (BOOL) debug;
15- (BOOL) verbose;
16- (BOOL) inspect;
17- (BOOL) optimize;
18- (BOOL) nosite;
19- (BOOL) tabs;
20- (NSString *) others;
21- (BOOL) with_terminal;
Jack Jansend7cccdd2003-06-20 22:21:03 +000022- (NSString *) scriptargs;
Jack Jansen3bbb6172002-07-29 21:36:35 +000023@end
24
25@interface FileSettings : NSObject <FileSettingsSource>
26{
27 NSString *interpreter; // The pathname of the interpreter to use
Jack Jansenf044e092002-12-26 22:10:53 +000028 NSArray *interpreters; // List of known interpreters
Jack Jansen3d3b7462003-02-17 15:40:00 +000029 BOOL honourhashbang; // #! line overrides interpreter
Jack Jansen3bbb6172002-07-29 21:36:35 +000030 BOOL debug; // -d option: debug parser
31 BOOL verbose; // -v option: verbose import
32 BOOL inspect; // -i option: interactive mode after script
33 BOOL optimize; // -O option: optimize bytecode
34 BOOL nosite; // -S option: don't import site.py
35 BOOL tabs; // -t option: warn about inconsistent tabs
36 NSString *others; // other options
Jack Jansend7cccdd2003-06-20 22:21:03 +000037 NSString *scriptargs; // script arguments (not for preferences)
Jack Jansen3bbb6172002-07-29 21:36:35 +000038 BOOL with_terminal; // Run in terminal window
39
40 FileSettings *origsource;
41 NSString *prefskey;
42}
43
44+ (id)getDefaultsForFileType: (NSString *)filetype;
Jack Jansen2095c062002-11-25 13:11:06 +000045+ (id)getFactorySettingsForFileType: (NSString *)filetype;
Jack Jansen3bbb6172002-07-29 21:36:35 +000046+ (id)newSettingsForFileType: (NSString *)filetype;
47
Jack Jansen2095c062002-11-25 13:11:06 +000048- (id)initForFileType: (NSString *)filetype;
49- (id)initForFSDefaultFileType: (NSString *)filetype;
50- (id)initForDefaultFileType: (NSString *)filetype;
Jack Jansen3bbb6172002-07-29 21:36:35 +000051
52- (void)updateFromSource: (id <FileSettingsSource>)source;
53- (NSString *)commandLineForScript: (NSString *)script;
54
Jack Jansen2095c062002-11-25 13:11:06 +000055- (void)applyValuesFromDict: (NSDictionary *)dict;
56- (void)reset;
Jack Jansenf044e092002-12-26 22:10:53 +000057- (NSArray *) interpreters;
Jack Jansen3bbb6172002-07-29 21:36:35 +000058
59@end