#include <oak/misc.h>

// =======
// = API =
// =======

PUBLIC void RegisterDefaults ();

// =========
// = Files =
// =========

PUBLIC extern NSString* const kUserDefaultsDisableSessionRestoreKey;
PUBLIC extern NSString* const kUserDefaultsDisableNewDocumentAtStartupKey;
PUBLIC extern NSString* const kUserDefaultsDisableNewDocumentAtReactivationKey;

PUBLIC extern NSString* const kUserDefaultsNewDocumentTypeKey;
PUBLIC extern NSString* const kUserDefaultsEncodingKey;
PUBLIC extern NSString* const kUserDefaultsUseBOMKey;
PUBLIC extern NSString* const kUserDefaultsLineEndingsKey;

// ============
// = Projects =
// ============

PUBLIC extern NSString* const kUserDefaultsFoldersOnTopKey;
PUBLIC extern NSString* const kUserDefaultsShowFileExtensionsKey;
PUBLIC extern NSString* const kUserDefaultsInitialFileBrowserURLKey;
PUBLIC extern NSString* const kUserDefaultsExcludePatternKey;
PUBLIC extern NSString* const kUserDefaultsIncludePatternKey;
PUBLIC extern NSString* const kUserDefaultsBinaryPatternKey;

// ===========
// = Bundles =
// ===========

// =============
// = Variables =
// =============

PUBLIC extern NSString* const kUserDefaultsEnvironmentVariablesKey;

// ===================
// = Software Update =
// ===================

PUBLIC extern NSString* const kUserDefaultsDisableBundleUpdatesKey;
PUBLIC extern NSString* const kUserDefaultsLastBundleUpdateCheckKey;

// ============
// = Terminal =
// ============

PUBLIC extern NSString* const kUserDefaultsMateInstallPathKey;

PUBLIC extern NSString* const kUserDefaultsDisableRMateServerKey;
PUBLIC extern NSString* const kUserDefaultsRMateServerListenKey;
PUBLIC extern NSString* const kUserDefaultsRMateServerPortKey;

PUBLIC extern NSString* const kRMateServerListenLocalhost;
PUBLIC extern NSString* const kRMateServerListenRemote;

// ================
// = Registration =
// ================

PUBLIC extern NSString* const kUserDefaultsLicenseOwnerKey;

// ==============
// = Appearance =
// ==============

PUBLIC extern NSString* const kUserDefaultsWindowTitleKey;

PUBLIC extern NSString* const kUserDefaultsThemeUUIDKey;
PUBLIC extern NSString* const kUserDefaultsFontNameKey;
PUBLIC extern NSString* const kUserDefaultsFontSizeKey;
PUBLIC extern NSString* const kUserDefaultsAntiAliasKey;
PUBLIC extern NSString* const kUserDefaultsShowInvisiblesKey;

PUBLIC extern NSString* const kUserDefaultsLineNumbersKey;

PUBLIC extern NSString* const kUserDefaultsSoftWrapKey;
PUBLIC extern NSString* const kUserDefaultsWrapMarginKey;

PUBLIC extern NSString* const kUserDefaultsTabSizeKey;
PUBLIC extern NSString* const kUserDefaultsSoftTabsKey;

// =========
// = Other =
// =========

PUBLIC extern NSString* const kUserDefaultsSpellCheckingKey;
PUBLIC extern NSString* const kUserDefaultsSpellingLanguageKey;

PUBLIC extern NSString* const kUserDefaultsFolderSearchFollowLinksKey;
PUBLIC extern NSString* const kUserDefaultsScopeAttributesKey;
