Class: RMThemeGen::RMThemeParent

Inherits:
Object
  • Object
show all
Defined in:
lib/rmthemegen/token_list.rb,
lib/rmthemegen/rmthemegen_parent.rb

Constant Summary collapse

@@doc_opt_keys =
%w(  LINE_SPACING  EDITOR_FONT_SIZE  EDITOR_FONT_NAME)
@@doc_color_keys =
%w(ANNOTATIONS_COLOR CARET_COLOR CARET_ROW_COLOR CONSOLE_BACKGROUND_KEY GUTTER_BACKGROUND INDENT_GUIDE LINE_NUMBERS_COLOR
METHOD_SEPARATORS_COLOR MODIFIED_LINES_COLOR READONLY_BACKGROUND READONLY_FRAGMENT_BACKGROUND RECURSIVE_CALL_ATTRIBUTES RIGHT_MARGIN_COLOR
SELECTED_INDENT_GUIDE SELECTED_TEARLINE_COLOR SELECTION_BACKGROUND SELECTION_FOREGROUND TEARLINE_COLOR WHITESPACES)
@@element_keys =
%w( ABSTRACT_CLASS_NAME_ATTRIBUTES ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES ANNOTATION_NAME_ATTRIBUTES ATTR_INTERNAL_CALL_ID BAD_CHARACTER BREAKPOINT_ATTRIBUTES CLASS_NAME_ATTRIBUTES CONSOLE_BLUE_OUTPUT CONSOLE_CYAN_OUTPUT CONSOLE_ERROR_OUTPUT CONSOLE_GRAY_OUTPUT CONSOLE_GREEN_OUTPUT CONSOLE_MAGENTA_OUTPUT CONSOLE_NORMAL_OUTPUT CONSOLE_OUTPUT CONSOLE_RED_OUTPUT CONSOLE_SYSTEM_OUTPUT CONSOLE_USER_INPUT CONSOLE_YELLOW_OUTPUT CSS.COMMENT CSS.FUNCTION CSS.IDENT CSS.KEYWORD CSS.NUMBER CSS.PROPERTY_NAME CSS.PROPERTY_VALUE CSS.STRING CSS.TAG_NAME CSS.URL CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES CUSTOM_KEYWORD1_ATTRIBUTES CUSTOM_KEYWORD2_ATTRIBUTES CUSTOM_KEYWORD3_ATTRIBUTES CUSTOM_KEYWORD4_ATTRIBUTES CUSTOM_LINE_COMMENT_ATTRIBUTES CUSTOM_MULTI_LINE_COMMENT_ATTRIBUTES CUSTOM_NUMBER_ATTRIBUTES CUSTOM_STRING_ATTRIBUTES CUSTOM_VALID_STRING_ESCAPE_ATTRIBUTES DEPRECATED_ATTRIBUTES DIFF_CONFLICT DIFF_DELETED DIFF_INSERTED DIFF_MODIFIED DUPLICATE_FROM_SERVER EL.BOUNDS EL.BRACKETS EL.IDENT EL.KEYWORD EL.NUMBER EL.PARENTHS EL.STRING EL_BACKGROUND ERRORS_ATTRIBUTES EXECUTIONPOINT_ATTRIBUTES FOLDED_TEXT_ATTRIBUTES FOLLOWED_HYPERLINK_ATTRIBUTES GENERIC_SERVER_ERROR_OR_WARNING GHERKIN_KEYWORD HAML_CLASS HAML_COMMENT HAML_FILTER HAML_FILTER_CONTENT HAML_ID HAML_LINE_CONTINUATION HAML_RUBY_CODE HAML_RUBY_START HAML_TAG HAML_TEXT HAML_XHTML HTML_ATTRIBUTE_NAME HTML_ATTRIBUTE_VALUE HTML_COMMENT HTML_ENTITY_REFERENCE HTML_TAG HTML_TAG_NAME HYPERLINK_ATTRIBUTES IDENTIFIER_UNDER_CARET_ATTRIBUTES INCLUDE_JAVA_CALL INFO_ATTRIBUTES INJECTED_LANGUAGE_FRAGMENT INSPECTION_MULTIPLE_RESOLVE_WARNING_ID INSTANCE_FIELD_ATTRIBUTES INTERFACE_NAME_ATTRIBUTES JAVA_DOC_COMMENT JAVA_DOC_MARKUP JAVA_INVALID_STRING_ESCAPE JAVA_KEYWORD JAVA_NUMBER JAVA_STRING JAVA_VALID_STRING_ESCAPE JS.ATTRIBUTE JS.BADCHARACTER JS.BLOCK_COMMENT JS.DOC_COMMENT JS.DOC_MARKUP JS.DOC_TAG JS.GLOBAL_FUNCTION JS.GLOBAL_VARIABLE JS.INSTANCE_MEMBER_FUNCTION JS.INSTANCE_MEMBER_VARIABLE JS.INVALID_STRING_ESCAPE JS.KEYWORD JS.LINE_COMMENT JS.LOCAL_VARIABLE JS.NUMBER JS.PARAMETER JS.REGEXP JS.STATIC_MEMBER_FUNCTION JS.STATIC_MEMBER_VARIABLE JS.STRING JS.VALID_STRING_ESCAPE JSP_ATTRIBUTE_NAME JSP_ATTRIBUTE_VALUE JSP_DIRECTIVE_BACKGROUND JSP_DIRECTIVE_NAME JSP_SCRIPTING_BACKGROUND LESS_VARIABLE MATCHED_BRACE_ATTRIBUTES NOT_USED_ELEMENT_ATTRIBUTES PROPERTIES.INVALID_STRING_ESCAPE PROPERTIES.KEY PROPERTIES.VALID_STRING_ESCAPE PROPERTIES.VALUE REGEXP.BRACES REGEXP.BRACKETS REGEXP.ESC_CHARACTER REGEXP.META REGEXP.PARENTHS REGEXP.CHAR_CLASS REGEXP.INVALID_STRING_ESCAPE REGEXP.QUOTE_CHARACTER REGEXP.REDUNDANT_ESCAPE REQUIRE_GEM_CALL RHTML_COMMENT_ID RHTML_EXPRESSION_END_ID RHTML_EXPRESSION_START_ID RHTML_OMIT_NEW_LINE_ID RHTML_SCRIPTING_BACKGROUND_ID RHTML_SCRIPTLET_END_ID RHTML_SCRIPTLET_START_ID 

RUBY_ATTR_ACCESSOR_CALL RUBY_ATTR_READER_CALL RUBY_ATTR_WRITER_CALL RUBY_BACK_REF RUBY_BAD_CHARACTER RUBY_BRACKETS RUBY_COMMA RUBY_COMMENT RUBY_CONSTANT RUBY_CONSTANT_DEF_ID RUBY_CVAR RUBY_ESCAPE_SEQUENCE RUBY_EXPR_IN_STRING RUBY_GVAR RUBY_HASH_ASSOC RUBY_HEREDOC_CONTENT RUBY_HEREDOC_ID RUBY_IDENTIFIER RUBY_IMPORT_CALL RUBY_INVALID_ESCAPE_SEQUENCE RUBY_IVAR RUBY_KEYWORD RUBY_LINE_CONTINUATION RUBY_LOCAL_VAR_ID RUBY_METHOD_NAME RUBY_NTH_REF RUBY_NUMBER RUBY_OPERATION_SIGN RUBY_PARAMDEF_CALL RUBY_PARAMETER_ID RUBY_PRIVATE_CALL RUBY_PROTECTED_CALL RUBY_PUBLIC_CALL RUBY_REGEXP RUBY_REQUIRE_ARG_CALL RUBY_REQUIRE_CALL RUBY_SEMICOLON RUBY_SPECIFIC_CALL RUBY_STRING RUBY_SYMBOL RUBY_WORDS 

SASS_ATTRIBUTE SASS_COMMENT SASS_CONSTANT SASS_DIRECTIVE SASS_MIXIN SASS_NUMBER SASS_RULE SASS_STRING SASS_VARIABLE SCOPE_KEY_All SCOPE_KEY_Non-Project Files SCOPE_KEY_Problems SCOPE_KEY_Production SCOPE_KEY_Project Files SCOPE_KEY_Tests SEARCH_RESULT_ATTRIBUTES SQL_KEYWORD STATIC_FIELD_ATTRIBUTES TEMPLATE_VARIABLE_ATTRIBUTES TEXT TEXT_SEARCH_RESULT_ATTRIBUTES TODO_DEFAULT_ATTRIBUTES TYPO WARNING_ATTRIBUTES WRITE_IDENTIFIER_UNDER_CARET_ATTRIBUTES WRITE_SEARCH_RESULT_ATTRIBUTES WRONG_REFERENCES_ATTRIBUTES XML_ATTRIBUTE_NAME XML_ATTRIBUTE_VALUE XML_COMMENT XML_ENTITY_REFERENCE XML_PROLOGUE XML_TAG XML_TAG_DATA XML_TAG_NAME YAML_COMMENT YAML_SCALAR_DSTRING YAML_SCALAR_KEY YAML_SCALAR_LIST YAML_SCALAR_STRING YAML_SCALAR_VALUE YAML_SCALAR_VALUE4 YAML_SIGN YAML_TEXT)
@@tokens_for_css =
%w(
CARET_ROW_COLOR
RUBY_ATTR_ACCESSOR_CALL 
RUBY_ATTR_READER_CALL 
RUBY_ATTR_WRITER_CALL 
RUBY_BACK_REF 
RUBY_BAD_CHARACTER 
RUBY_BRACKETS 
RUBY_COMMA 
RUBY_COMMENT 
RUBY_CONSTANT 
RUBY_CONSTANT_DEF_ID 
RUBY_CVAR 
RUBY_ESCAPE_SEQUENCE 
RUBY_EXPR_IN_STRING 
RUBY_GVAR 
RUBY_HASH_ASSOC 
RUBY_HEREDOC_CONTENT 
RUBY_HEREDOC_ID 
RUBY_IDENTIFIER 
RUBY_IMPORT_CALL 
RUBY_INVALID_ESCAPE_SEQUENCE 
RUBY_IVAR 
RUBY_KEYWORD 
RUBY_LINE_CONTINUATION 
RUBY_LOCAL_VAR_ID 
RUBY_METHOD_NAME 
RUBY_NTH_REF 
RUBY_NUMBER 
RUBY_OPERATION_SIGN 
RUBY_PARAMDEF_CALL 
RUBY_PARAMETER_ID 
RUBY_PRIVATE_CALL 
RUBY_PROTECTED_CALL 
RUBY_PUBLIC_CALL 
RUBY_REGEXP 
RUBY_REQUIRE_ARG_CALL 
RUBY_REQUIRE_CALL 
RUBY_SEMICOLON 
RUBY_SPECIFIC_CALL 
RUBY_STRING 
RUBY_SYMBOL 
RUBY_WORDS 
SELECTION_BACKGROUND

)
@@document_opts_to_textmate =

:RUBY_BACK_REF =>[“name”,“scope”,{}],

:RUBY_LINE_CONTINUATION=>["name","scope",{}], 
:RUBY_NTH_REF =>["name","scope",{}],
{
:RUBY_ATTR_ACCESSOR_CALL=>["keyword.other.special-method.ruby","keyword.other.special-method.ruby",{}], 
:RUBY_ATTR_READER_CALL =>["keyword.other.special-method.ruby","keyword.other.special-method.ruby",{}],
:RUBY_ATTR_WRITER_CALL =>["keyword.other.special-method.ruby","keyword.other.special-method.ruby",{}],
:RUBY_BAD_CHARACTER=>["Invalid - Illegal","invalid.illegal",{}], 
:RUBY_BRACKETS =>["Ruby Brackets","punctuation.section.function, meta.brace.curly.function, meta.function-call punctuation.section.scope.ruby",{}],
:RUBY_COMMA =>["Comma","meta.delimiter.object.comma",{}],
:RUBY_COMMENT =>["Comment","comment",{}],
:RUBY_CONSTANT =>["Constant","constant.language.ruby",{}],
:RUBY_CONSTANT_DEF_ID=>["Constant Def ID","constant.character",{}], 
:RUBY_CVAR =>["Class Variable","variable.other.readwrite.class.ruby",{}],
:RUBY_ESCAPE_SEQUENCE =>["String Escapes","string constant.character.escape",{}],
:RUBY_EXPR_IN_STRING =>["String Interpolation","string.interpolated",{}],
:RUBY_GVAR =>["Global Variable","variable.other.readwrite.global",{}],
:RUBY_HASH_ASSOC =>["Hash Separator","punctuation.separator.key-value",{}],
:RUBY_HEREDOC_CONTENT =>["Heredoc","meta.scope.heredoc",{}],
:RUBY_HEREDOC_ID =>["Heredoc ID","meta.scope.heredoc",{}],
:RUBY_IDENTIFIER =>["Identifier","constant.language",{}],
:RUBY_IMPORT_CALL =>["Import","keyword.control.import",{}],
:RUBY_INVALID_ESCAPE_SEQUENCE=>["Invalid","invalid.deprecated invalid.illegal",{}], 
:RUBY_IVAR =>["Instance Variable","variable.other.readwrite.instance.ruby",{}],
:RUBY_KEYWORD =>["Ruby Keyword","keyword.control.ruby meta.module.ruby",{}],
:RUBY_LOCAL_VAR_ID =>["Local Variable","variable.other.local",{}],
:RUBY_METHOD_NAME =>["Method","declaration.function, entity.name.function, support.function.any-method",{}],
:RUBY_NUMBER =>["Number","constant.numeric",{}],
:RUBY_OPERATION_SIGN=>["Ruby Operation Sign","keyword.operator.logical.ruby",{}], 
:RUBY_PARAMETER_ID =>["Ruby Parameter ID","variable.parameter",{}],
:RUBY_REGEXP =>["Regular Expression","string.regexp",{}],
:RUBY_REQUIRE_CALL =>["Require","keyword.other.special-method.ruby",{}],
:RUBY_SPECIFIC_CALL =>["Ruby Specific Call","keyword.control.pseudo-method.ruby",{}],
:RUBY_STRING =>["String","string",{}],
:RUBY_SYMBOL =>["Symbol","constant.other.symbol",{}]
}
@@adjectives =

:RUBY_PARAMDEF_CALL =>[“name”,“scope”,{}],

%w(  adorable adventurous aggressive alert attractive average beautiful blue-eyed  bloody blushing bright clean clear cloudy colorful crowded cute dark drab distinct dull elegant excited fancy filthy   glamorous gleaming gorgeous graceful grotesque handsome homely light long magnificent misty motionless muddy old-fashioned plain poised precious quaint shiny smoggy sparkling spotless stormy strange ugly ugliest unsightly unusual wide-eyed 	     alive annoying bad better beautiful brainy breakable busy careful cautious clever clumsy concerned crazy curious dead different difficult doubtful easy expensive famous fragile frail gifted helpful helpless horrible important   	   impossible inexpensive innocent inquisitive modern mushy odd open outstanding poor powerful prickly puzzled real rich shy sleepy stupid super talented tame tender tough uninterested vast wandering wild wrong     angry annoyed anxious arrogant ashamed awful bad bewildered black blue bored clumsy combative condemned confused crazy flipped-out creepy cruel dangerous defeated defiant depressed disgusted disturbed dizzy dull embarrassed envious evil fierce foolish frantic frightened grieving  grumpy helpless homeless hungry hurt ill itchy jealous jittery lazy lonely mysterious nasty  naughty nervous nutty obnoxious outrageous panicky repulsive scary selfish sore tense terrible testy thoughtless tired troubled upset uptight weary wicked worried     agreeable amused brave calm charming cheerful comfortable cooperative courageous delightful determined eager elated enchanting encouraging energetic enthusiastic excited exuberant fair faithful fantastic fine friendly funny gentle glorious good   happy healthy helpful hilarious jolly joyous kind lively lovely lucky nice obedient perfect pleasant proud relieved silly smiling splendid successful thankful thoughtful victorious vivacious witty wonderful zealous zany 	     broad chubby crooked curved deep flat high hollow low narrow round shallow skinny square steep straight wide      big colossal fat gigantic great huge immense large little mammoth massive miniature petite puny scrawny short small tall teeny teeny-tiny tiny     cooing deafening faint harsh high-pitched hissing hushed husky loud melodic moaning mute noisy purring quiet raspy resonant screeching shrill silent soft squealing thundering voiceless whispering 	     ancient brief Early fast late long modern old old-fashioned quick rapid short slow swift young   bitter delicious fresh juicy ripe rotten salty sour spicy stale sticky strong sweet tart tasteless tasty thirsty fluttering fuzzy greasy grubby hard hot icy loose         melted nutritious plastic prickly rainy rough scattered shaggy shaky sharp shivering silky slimy slippery smooth soft solid steady sticky tender tight uneven weak wet wooden yummy     	     boiling breezy broken bumpy chilly cold cool creepy crooked cuddly curly damaged damp dirty dry dusty filthy flaky fluffy freezing hot warm wet    abundant empty few heavy light  numerous substantial  average  big  colossal  fat  giant  gigantic  great  huge  immense  large  little  long  mammoth  massive  miniature  petite  puny  short  small  tall  tiny   boiling  breezy  broken  bumpy  chilly  cold  cool  creepy  crooked  cuddly  curly  damaged  damp  dirty  dry  dusty  filthy  flaky  fluffy  wet  broad  chubby  crooked  curved  deep  flat  high  hollow  low  narrow  round  shallow  skinny  square  steep  straight  wide  ancient  brief  early  fast  late  long  modern  old  old-fashioned  quick  rapid  short  slow  swift  young  abundant  empty  few  heavy  light    Sound  cooing  deafening  faint  harsh  high-pitched  hissing  hushed  husky  loud  melodic  moaning  mute  noisy  purring  quiet  raspy  resonant  screeching  shrill  silent  soft  squealing  thundering  voiceless  whispering   bitter  delicious  fresh  juicy  ripe  rotten  salty  sour  spicy  stale  sticky  strong  sweet  tasteless  tasty  thirsty  fluttering  fuzzy  greasy  grubby  hard  hot  icy  loose  melted  plastic  prickly  rainy  rough  scattered  shaggy  shaky  sharp  shivering  silky  slimy  slippery  smooth  soft  solid  steady  sticky  tender  tight  uneven  weak  wet  wooden  afraid  angry  annoyed  anxious  arrogant  ashamed  awful  bad  bewildered  bored  combative  condemned  confused  creepy  cruel  dangerous  defeated  defiant  depressed  disgusted  disturbed  eerie  embarrassed  envious  evil  fierce  foolish  frantic  frightened  grieving  helpless  homeless  hungry  hurt  ill  jealous  lonely  mysterious  naughty  nervous  obnoxious  outrageous  panicky  repulsive  scary  scornful  selfish  sore  tense  terrible  thoughtless  tired  troubled  upset  uptight  weary  wicked  worried  agreeable  amused  brave  calm  charming  cheerful  comfortable  cooperative  courageous  delightful  determined  eager  elated  enchanting  encouraging  energetic  enthusiastic  excited  exuberant  fair  faithful  fantastic  fine  friendly  funny  gentle  glorious   good  happy  healthy  helpful  hilarious  jolly  joyous  kind  lively  lovely  lucky  obedient  perfect  pleasant  proud  relieved  silly  smiling  splendid  successful  thoughtful  victorious  vivacious  witty  wonderful  zealous  zany  other good new old great high small different large local social important long young national british right early possible big little political able late general full far low public available bad main sure clear major economic only likely real black particular international special difficult certain open whole white free short easy strong european central similar human common necessary single personal hard private poor financial wide foreign simple recent concerned american various close fine english wrong present royal natural individual nice french following current modern labour legal happy final red normal serious previous total prime significant industrial sorry dead specific appropriate top soviet basic military original successful aware hon popular heavy professional direct dark cold ready green useful effective western traditional scottish german independent deep interesting considerable involved physical left hot existing responsible complete medical blue extra past male interested fair essential beautiful civil primary obvious future environmental positive senior nuclear annual relevant huge rich commercial safe regional practical official separate key chief regular due additional active powerful complex standard impossible light warm middle fresh sexual front domestic actual united technical ordinary cheap strange internal excellent quiet soft potential northern religious quick famous cultural proper broad joint formal limited conservative lovely usual ltd unable rural initial substantial christian bright average leading reasonable immediate suitable equal detailed working overall female afraid democratic growing sufficient scientific eastern correct inc irish expensive educational mental dangerous critical increased familiar unlikely double perfect slow tiny dry historical thin daily southern increasing wild alone urban empty married narrow liberal supposed upper apparent tall busy bloody prepared russian moral careful clean attractive japanese vital thick alternative fast ancient elderly rare external capable brief wonderful grand typical entire grey constant vast surprised ideal terrible academic funny minor pleased severe ill corporate negative permanent weak brown fundamental odd crucial inner used criminal contemporary sharp sick near roman massive unique secondary parliamentary african unknown subsequent angry alive guilty lucky enormous well communist yellow unusual net long-term tough dear extensive glad remaining agricultural alright healthy italian principal tired efficient comfortable chinese relative friendly conventional willing sudden proposed voluntary slight valuable dramatic golden temporary federal keen flat silent indian video-taped worried pale statutory welsh dependent firm wet competitive armed radical outside acceptable sensitive living pure global emotional sad secret rapid adequate fixed sweet administrative wooden remarkable comprehensive surprising solid rough mere mass brilliant maximum absolute tory electronic visual electric cool spanish literary continuing supreme chemical genuine exciting written stupid advanced extreme classical fit favourite socialist widespread confident straight catholic proud numerous opposite distinct mad helpful given disabled consistent anxious nervous awful stable constitutional satisfied conscious developing strategic holy smooth dominant remote theoretical outstanding pink pretty clinical minimum honest impressive related residential extraordinary plain visible accurate distant still greek complicated musical precise gentle broken live silly fat tight monetary round psychological violent unemployed inevitable junior sensible grateful pleasant dirty structural welcome so-called deaf above continuous blind overseas mean entitled delighted loose occasional evident desperate fellow universal square steady classic equivalent intellectual victorian level ultimate creative lost medieval clever linguistic convinced judicial raw sophisticated asleep vulnerable illegal outer revolutionary bitter changing australian native imperial strict wise informal flexible collective frequent experimental spiritual intense rational ethnic generous inadequate prominent logical bare historic modest dutch acute electrical valid weekly gross automatic loud reliable mutual liable multiple ruling curious arab sole jewish managing pregnant latin nearby exact underlying identical satisfactory marginal distinctive electoral urgent presidential controversial oral everyday encouraging organic continued expected statistical desirable innocent improved exclusive marked experienced unexpected superb sheer disappointed frightened full-time gastric capitalist romantic naked reluctant magnificent convenient established closed uncertain artificial diplomatic tremendous marine mechanical retail institutional mixed required biological known functional straightforward superior digital part-time spectacular unhappy confused unfair aggressive spare painful abstract asian associated legislative monthly intelligent hungry explicit nasty just faint coloured ridiculous amazing comparable successive working-class realistic back decent unnecessary flying  random influential dull genetic neat marvellous crazy damp giant secure bottom skilled subtle elegant brave lesser parallel steep intensive casual tropical lonely partial preliminary concrete alleged assistant vertical upset delicate mild occupational excessive progressive iraqi exceptional integrated striking continental okay harsh combined fierce handsome characteristic chronic compulsory interim objective splendid magic short-term systematic obliged payable fun horrible primitive fascinating ideological metropolitan surrounding estimated peaceful premier operational technological kind advisory hostile precious gay accessible determined excited impressed provincial smart endless isolated post-war drunk geographical like dynamic boring forthcoming unfortunate definite super notable indirect stiff wealthy awkward lively neutral artistic content mature colonial ambitious evil magnetic verbal legitimate sympathetic well-known empirical head shallow vague naval depressed shared added shocked mid worthwhile qualified missing blank absent favourable polish israeli developed profound representative enthusiastic dreadful rigid reduced cruel coastal peculiar racial ugly swiss crude extended selected eager feminist canadian bold relaxed corresponding running planned applicable immense allied comparative uncomfortable conservation productive beneficial bored charming minimal mobile turkish orange rear passive suspicious overwhelming fatal resulting symbolic registered neighbouring calm irrelevant patient compact profitable rival loyal moderate distinguished interior noble insufficient eligible mysterious varying middle-class managerial molecular olympic linear prospective printed parental diverse elaborate furious fiscal burning useless semantic embarrassed inherent philosophical deliberate awake variable promising unpleasant varied sacred selective inclined tender hidden worthy intermediate sound protective fortunate slim islamic defensive divine stuck driving invisible misleading circular mathematical inappropriate liquid persistent solar doubtful manual architectural intact incredible devoted prior tragic respectable optimistic convincing unacceptable decisive competent spatial respective binding relieved nursing toxic select redundant integral then probable amateur fond passing specified territorial horizontal old-fashioned inland cognitive regulatory miserable resident polite scared marxist gothic civilian instant lengthy adverse korean unconscious anonymous aesthetic orthodox static unaware costly fantastic foolish fashionable causal compatible wee implicit dual ok cheerful subjective forward surviving exotic purple cautious visiting aggregate ethical protestant teenage large-scale dying disastrous delicious confidential underground thorough grim autonomous atomic frozen colourful injured uniform ashamed glorious wicked coherent rising shy novel balanced delightful arbitrary adjacent psychiatric worrying weird unchanged rolling evolutionary intimate sporting disciplinary formidable lexical noisy gradual accused homeless supporting coming renewed excess retired rubber chosen outdoor embarrassing preferred bizarre appalling agreed imaginative governing accepted vocational palestinian mighty puzzled worldwide handicapped organisational sunny eldest eventual spontaneous vivid rude nineteenth-century faithful ministerial innovative controlled conceptual unwilling civic meaningful disturbing alive  brainy  breakable  busy  careful  cautious  clever  concerned  crazy  curious  dead  different  difficult  doubtful  easy  famous  fragile  helpful  helpless  important   impossible  innocent  inquisitive  modern  open  outstanding  poor  powerful  puzzled  real  rich  shy  sleepy  stupid  super  tame  uninterested  wandering  wild  wrong   adorable  alert  average  beautiful  blonde  bloody  blushing  bright  clean  clear  cloudy  colorful  crowded  cute  dark  drab  distinct  dull  elegant  fancy  filthy  glamorous  gleaming  graceful  grotesque  homely  light  misty  motionless  muddy  plain  poised  quaint  shiny  smoggy  sparkling  spotless  stormy  strange  ugly  unsightly  unusual  bad better beautiful big black blue bright clumsy  crazy dizzy dull fat frail friendly funny great green gigantic gorgeous grumpy  handsome happy horrible itchy jittery jolly kind long lazy magnificent  magenta many mighty mushy nasty new nice nosy nutty nutritious  odd orange ordinary pretty precious prickly purple quaint quiet quick quickest rainy rare ratty red roasted robust round sad scary scrawny short silly stingy strange striped spotty tart tall tame tan tender testy tricky tough ugly ugliest vast watery wasteful  wide-eyed wonderful yellow yummy zany peer-to-peer  )
@@nouns =
%w(aardvark able Abyssinian accelerator accordion account accountant achieve acknowledgment acoustic acrylic act action active activity actor actress adapter addition address adjustment advantage advertisement advice Afghanistan Africa aftermath afternoon aftershave afterthought age agenda agreement air airbus airmail airplane airport airship alarm albatross alcohol algebra Algeria alibi alley alligator alloy almanac alphabet alto aluminium aluminum ambulance America American amount amusement anatomy anethesiologist anger angle Angora animal anime ankle answer ant Antarctica anteater Anthony anthropology apartment apology apparatus apparel appeal appendix apple appliance apply approval April Aquarius arch archaeology archeology archer architecture area Argentina argument Aries arithmetic arm armadillo armchair armed Armenian army arrow art ash ashtray Asia asparagus asphalt asterisk astronomy athlete ATM atom atomic attack attempt attention attic attraction August aunt Australia Australian author authority authorization avenue baboon baby back backbone bacon badge badger bag bagel bagpipe bail bait baker bakery balance Balinese ball balloon bamboo banana band bandana Bangladesh banjo bank bankbook banker bar Barbara barber barge baritone barometer base baseball basement basin basket basketball bass bassoon bat bath bathroom bathtub battery battle bay beach bead beam bean bear beard beast beat beautician beauty beaver bed bedroom bee beech beef beer beet beetle beggar beginner begonia behavior Belgian belief believe bell belt bench Bengal beret berry bestseller Betty bibliography bicycle bike bill billboard biology biplane birch bird birth birthday bit bite black bladder blade blanket blinker blizzard block blood blouse blow blowgun blue board boat bobcat body bomb bomber bone bongos bonsai book bookcase booklet boot border botany bottle bottom boundary bow bowling box boy bra brace bracket brain brake branch brand brandy brass Brazil bread break breakfast breath Brian brick bridge British broccoli brochure broker bronze brother brother-in-law brow brown brush bubble bucket budget buffer buffet bugle building bulb bull bulldozer bumper bun burglar Burma burn burst bus bush business butane butcher butter button buzzard cabbage cabinet cable cactus cafe cake calculator calculus calendar calf call camel camera camp Canada Canadian Cancer candle cannon canoe canvas cap capital cappelletti Capricorn captain caption car carbon card cardboard cardigan care carnation Carol carp carpenter carriage carrot cart cartoon case cast castanet cat catamaran caterpillar cathedral catsup cattle cauliflower cause caution cave C-clamp CD ceiling celery celeste cell cellar cello Celsius cement cemetery cent centimeter century ceramic cereal certification chain chair chalk chance change channel character chard Charles chauffeur check cheek cheese cheetah chef chemistry cheque cherry chess chest chick chicken chicory chief child children chill chimpanzee chin China Chinese chive chocolate chord Christmas Christopher chronometer church cicada cinema circle circulation cirrus citizenship city clam clarinet Claus clave clef clerk click client climb clipper cloakroom clock close closet cloth cloud cloudy clover club clutch coach coal coast coat cobweb cockroach cocktail cocoa cod coffee coil coin coke cold collar college collision Colombia colon colony color colt column columnist comb comfort comics comma command commission committee community company comparison competition competitor composer composition computer condition condor cone confirmation conga Congo conifer connection consonant continent control cook cooking copper copy copyright cord cork cormorant corn cornet correspondent cost cotton couch cougar cough country course court cousin cover cow cowbell crab crack cracker craftsman crate crawdad crayfish crayon cream creator creature credit creditor creek crib cricket crime criminal crocodile crocus croissant crook crop cross crow crowd crown crush cry cub Cuban cucumber cultivator cup cupboard curler currency current curtain curve cushion customer cut cuticle cycle cyclone cylinder cymbal dad daffodil dahlia daisy damage dance danger Daniel dash dashboard database date daughter David day dead deadline deal death Deborah debt debtor decade December decimal decision decrease dedication deer defense deficit degree delete delivery den denim dentist deodorant department deposit description desert design desire desk dessert destruction detail detective development dew diamond diaphragm dibble dictionary dietician difference digestion digger digital dill dime dimple dinghy dinner dinosaur diploma dipstick direction dirt disadvantage discovery discussion disease disgust dish distance distribution distributor diving division divorced dock doctor dog dogsled doll dollar dolphin domain Donald donkey Donna door Dorothy double doubt downtown dragon dragonfly drain drake drama draw drawbridge drawer dream dredger dress dresser dressing drill drink drive driver driving drizzle drop drug drum dry dryer duck duckling dugout dungeon dust eagle ear earth earthquake ease east edge edger editor editorial education Edward eel effect egg eggnog eggplant Egypt eight elbow element elephant Elizabeth ellipse emery employee employer encyclopedia end enemy energy engine engineer engineering English enquiry entrance environment epoch epoxy equinox equipment era error estimate ethernet Ethiopia euphonium Europe evening event examination example exchange exclamation exhaust ex-husband existence expansion experience expert explanation ex-wife eye eyebrow eyeliner face facilities fact factory Fahrenheit fairies fall family fan fang farm farmer fat father father-in-law faucet fear feast feather feature February fedelini feedback feeling feet felony female fender ferry ferryboat fiber fiberglass fibre fiction field fifth fight fighter file find fine finger fir fire fired fireman fireplace firewall fish fisherman flag flame flare flat flavor flax flesh flight flock flood floor flower flugelhorn flute fly foam fog fold font food foot football footnote force forecast forehead forest forgery fork form format fortnight foundation fountain fowl fox foxglove fragrance frame France freckle freeze freezer freighter French freon friction Friday friend frog front frost fruit fuel fur furniture galley gallon game gander garage garden garlic gas gasoline gate gateway gauge gazelle gear gearshift geese Gemini gender geography geology geometry George geranium German Germany Ghana ghost giraffe girdle girl gladiolus glass glider gliding glockenspiel glove glue goal goat gold goldfish golf gondola gong good-bye goose gore-tex gorilla gosling government governor grade grain gram granddaughter grandfather grandmother grandson grape graphic grass grasshopper gray grease great-grandfather great-grandmother Greece Greek green grenade grey grill grip ground group grouse growth guarantee Guatemalan guide guilty guitar gum gun gym gymnast hacksaw hail hair haircut half-brother half-sister halibut hall hallway hamburger hammer hamster hand handball handicap handle handsaw harbor hardboard hardcover hardhat hardware harmonica harmony harp hat hate hawk head headlight headline health hearing heart heat heaven hedge height Helen helicopter helium hell helmet help hemp hen heron herring hexagon hill Himalayan hip hippopotamus history hockey hoe hole holiday home honey hood hook hope horn horse hose hospital promenade hour hourglass house hovercraft hub hubcap humidity humor hurricane hyacinth hydrant hydrofoil hydrogen hyena hygienic ice icebreaker icicle icon idea ikebana illegal imprisonment improvement impulse inch income increase index India Indonesia industry ink innocent input insect instruction instrument insulation insurance interactive interest Internet interviewer intestine invention inventory invoice Iran Iraq iris iron island Israel Italian Italy jacket jaguar jail jam James January Japan Japanese jar jasmine Jason jaw jeans jeep Jeff jelly jellyfish Jennifer jet jewel jogging John join joke Joseph journey judge judo juice July jumbo jump jumper June jury justice jute kale kamikaze kangaroo karate Karen kayak kendo Kenneth Kenya ketchup kettle kettledrum Kevin key keyboard keyboarding kick kilogram kilometer Kimberly kiss kitchen kite kitten kitty knee knickers knife knight knot knowledge kohlrabi Korean laborer lace ladybug lake lamb lamp lan land landmine language larch lasagna latency latex lathe laugh laundry Laura law lawyer layer lead leaf learning leather leek leg legal lemonade lentil Leo leopard letter lettuce level Libra library license lier lift light lightning lilac lily limit Linda line linen link lion lip lipstick liquid liquor Lisa list literature litter liver lizard llama loaf loan lobster lock locket locust look loss lotion love low lumber lunch lunchroom lung lute luttuce lycra lynx lyocell lyre lyric macaroni machine macrame magazine magic magician maid mail mailbox mailman makeup Malaysia male mall mallet man manager mandolin manicure Manx map maple maraca marble March Margaret margin Maria marimba mark Mark market married Mary mascara mask mass match math mattock May mayonnaise meal measure meat mechanic medicine meeting melody memory men menu mercury message metal meteorology meter methane Mexican Mexico mice Michael Michelle microwave middle mile milk milkshake millennium millimeter millisecond mimosa mind mine minibus mini-skirt minister mint minute mirror missile mist mistake mitten moat modem mole mom Monday money monkey month moon morning Morocco mosque mosquito mother mother-in-law motion motorboat motorcycle mountain mouse moustache mouth move multi-hop multimedia muscle museum music musician mustard Myanmar nail name Nancy napkin narcissus nation neck need needle neon Nepal nephew nerve nest net network news newsprint newsstand nic nickel niece Nigeria night nitrogen node noise noodle north North America North Korea Norwegian nose note notebook notify novel November number numeric nurse nut nylon oak oatmeal objective oboe observation occupation ocean ocelot octagon octave October octopus odometer offence offer office oil okra olive onion open opera operation ophthalmologist opinion option orange orchestra orchid order organ organisation organization ornament ostrich otter ounce output outrigger oval oven overcoat owl owner ox oxygen oyster packet page pail pain paint pair pajama Pakistan pamphlet pan pancake pancreas panda pansy panther panties pantry pants panty pantyhose paper paperback parade parallelogram parcel parent parentheses park parrot parsnip part particle partner partridge party passbook passenger passive pasta paste pastor pastry patch path patient patio Patricia Paul payment pea peace peak peanut pear pedestrian pediatrician peen  pelican pen penalty pencil pendulum pentagon peony pepper perch perfume period periodical peripheral permission Persian person Peru pest pet pharmacist pheasant Philippines philosophy phone physician piano piccolo pickle picture pie pig pigeon pike pillow pilot pimple pin pine ping pink pint pipe Pisces pizza place plain plane plant plantation plaster plasterboard plastic plate platinum play playground playroom pleasure plier plot plough plow plywood pocket poet point poison Poland police policeman polish politician pollution polo polyester pond popcorn poppy porch porcupine port porter position possibility postage postbox pot potato poultry pound powder power precipitation preface prepared pressure price priest print printer prison probation process processing produce product production professor profit promotion propane property prose prosecution protest protocol pruner psychiatrist psychology ptarmigan puffin pull puma pump pumpkin punch punishment puppy purchase purple purpose push PVC pyjama pyramid quail quality quart quarter quartz queen question quicksand quiet quill quilt quince quit quiver quotation rabbi rabbit racing radar radiator radio radish raft rail railway rain rainbow raincoat rainstorm rake ramie  range rat rate raven ravioli ray rayon reaction reading reason receipt recess record recorder rectangle red reduction refrigerator refund regret reindeer relation relatives religion relish reminder repair replace report representative request resolution respect responsibility rest restaurant result retailer revolve revolver reward rhinoceros rhythm rice Richard riddle rifle ring rise risk river riverbed road roadway roast Robert robin rock rod roll Romania Romanian Ronald roof room rooster root rose rotation route router rowboat rub rubber rugby rule run Russia Russian rutabaga Ruth sack Sagittarius sail sailboat sailor salad salary sale salesman salmon salt sampan samurai sand Sandra sandwich Santa Sarah sardine satin Saturday sauce Saudi Arabia sausage save saw saxophone scale scallion scanner scarecrow scarf scene scent schedule school science scissors scooter Scorpio scorpion scraper screw screwdriver sea seagull seal seaplane search seashore season seat second secretary secure security seed seeder segment select selection self semicircle semicolon sense sentence separated September servant server session sex shade shadow shake shallot shame shampoo shape share shark Sharon shears sheep sheet shelf shell shield shingle ship shirt shock shoe shoemaker shop shorts shoulder shovel show shrimp shrine Siamese Siberian side sideboard sidecar sidewalk sign signature silica silk silver sing singer single sink sister sister-in-law size skate skiing skill skin skirt sky slash slave sled sleep sleet slice slip slippers slope smash smell smile smoke snail snake sneeze snow snowboarding snowflake snowman snowplow snowstorm soap soccer society sociology sock soda sofa softball softdrink software soldier son song soprano sound soup sousaphone South Africa South America South Korea soy soybean space spade spaghetti Spain spandex spark sparrow spear specialist speedboat sphere Sphynx spider spinach spleen sponge spoon spot spring sprout spruce spy square squash squid squirrel stage staircase stamp star start starter state statement station statistic steam steel stem step step-aunt step-brother stepdaughter step-daughter step-father step-grandfather step-grandmother stepmother step-mother step-sister stepson step-son step-uncle Steven stew stick stitch stock stocking stomach stone stool stop stopwatch store storm story stove stranger straw stream street streetcar stretch string structure study sturgeon submarine substance subway success Sudan suede sugar suggestion suit summer sun Sunday sundial sunflower supermarket supply support surfboard surgeon surname surprise Susan sushi swallow swamp swan sweater sweatshirt sweatshop Swedish sweets swim swimming swing Swiss switch sword swordfish sycamore Syria syrup system table tachometer tadpole tail tailor Taiwan talk tank tanker Tanzania target taste Taurus tax taxi taxicab tea teacher teaching team technician teeth television teller temper temperature temple tempo tendency tennis tenor tent territory test text textbook texture Thailand theater theory thermometer thing thistle Thomas thought thread thrill throat throne thumb thunder thunderstorm Thursday ticket tie tiger tights tile timbales time timer timpani tin tip tire titanium title toad toast toe toilet tomato tomatoes tom-tom ton tongue tooth toothbrush toothpaste top tornado tortellini tortoise touch tower town toy tractor trade traffic trail train tramp transaction transmission transport trapezoid tray treatment tree trial triangle trick trigonometry trip trombone trouble trousers trout trowel truck trumpet trunk t-shirt tsunami tub tuba Tuesday tugboat tulip tuna tune Turkey Turkish turn turnip turnover turret turtle TV twig twilight twine twist typhoon tyvek Uganda Ukraine Ukrainian umbrella uncle underclothes underpants undershirt underwear unit United Kingdom unshielded utensil Uzbekistan vacation vacuum valley value van vase vault vegetable vegetarian veil vein velvet Venezuela Venezuelan verdict vermicelli verse vessel vest veterinarian vibraphone Vietnam view vinyl viola violet violin Virgo viscose vise vision visitor voice volcano volleyball voyage vulture waiter waitress wall wallaby walrus war warm wash washer wasp waste watch watchmaker water waterfall wave wax way wealth weapon weasel weather wedge Wednesday weeder week weight whale wheel whip whiskey whistle white wholesaler whorl wilderness William willow wind windchime window windscreen windshield wine wing winter wire wish withdrawal witness wolf woman women wood wool woolen word work workshop worm wound wrecker wren wrench wrinkles wrist writer xylophone yacht yam yard year yellow yew yogurt Yugoslavian zebra zinc zone zoology
)
@@scopes_found =

this is for making textmate themes

['meta.selector.css entity.name.tag', 'markup.list', 'keyword', 'entity.name.tag', 'storage', 'keyword.operator.js', 'constant.character.escape, string source', 'invalid.deprecated', 'source string source punctuation.section.embedded', 'meta.tag', 'support.other.variable', 'meta.sgml.html meta.doctype, meta.sgml.html meta.doctype entity, meta.sgml.html meta.doctype string, meta.xml-processing, meta.xml-processing entity, meta.xml-processing string', 'meta.section entity.name.section, declaration.section entity.name.section', 'meta.preprocessor.at-rule keyword.control.at-rule', 'comment.block', 'invalid', 'keyword.other', 'support.constant', 'source.ocaml keyword.operator.symbol.prefix.floating-point', 'text source, string.unquoted', 'keyword.control.import', 'string', 'source comment.block', 'keyword.other.unit.css, constant.other.rgb-value.css, constant.numeric.css', 'entity.name.type', 'meta.constructor.argument.css', 'meta.preprocessor.c keyword', 'declaration.tag, declaration.tag entity, meta.tag, meta.tag entity', 'markup.italic', 'support.class, support.type', 'variable.other.constant', 'string.quoted.docinfo.doctype.DTD', 'declaration.sgml.html declaration.doctype, declaration.sgml.html declaration.doctype entity, declaration.sgml.html declaration.doctype string, declaration.xml-processing, declaration.xml-processing entity, declaration.xml-processing string', 'support.type, support.class', 'meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css', 'meta.diff, meta.diff.header, meta.separator', 'markup.heading, markup.heading entity', 'meta.tag, declaration.tag', 'meta.preprocessor', 'string.interpolated constant.character.escape', 'text', 'entity.name.tag.namespace, entity.other.attribute-name.namespace', 'variable.parameter', 'markup.underline', 'keyword.control', 'entity.name.function, keyword.other.name-of-parameter.objc', 'comment', 'entity.name.function', 'meta.tag.preprocessor.xml', 'meta.selector.css, entity.other.attribute-name.pseudo-class.css, entity.name.tag.wildcard.css, entity.other.attribute-name.id.css, entity.other.attribute-name.class.css', 'meta.selector.css entity.other.attribute-name.class', 'entity.name.class', 'string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition', 'constant', 'constant.numeric', 'support.type', 'source', 'meta.tag, meta.tag entity', 'source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity', 'markup.inserted', 'support.variable', 'string constant', 'variable.language, variable.other', 'entity.name.section', 'string.regexp.character-class', 'storage.type', 'string constant.character.escape', 'meta.function-call.py', 'meta.diff, meta.diff.header', 'entity.name.function, support.function.any-method', 'string variable', 'punctuation', 'variable.other', 'meta.tag, declaration.tag, entity.name.tag, entity.other.attribute-name', 'string.regexp.group', 'meta.preprocessor.c', 'support.function', 'markup.raw', 'source.ocaml keyword.operator.symbol.prefix', 'meta.separator', 'entity.name', 'other.preprocessor.c', 'support.type.property-name.css', 'other.preprocessor', 'variable', 'source.ocaml constant.numeric.floating-point', 'string source', 'declaration.tag.inline, declaration.tag.inline entity, source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity', 'markup.changed', 'keyword.operator', 'constant.language', 'entity.other.attribute-name', 'meta.selector.css entity.other.attribute-name.tag.pseudo-class', 'source.ocaml keyword.operator.symbol.infix', 'string, meta.verbatim', 'string.regexp', 'markup.quote', 'entity.other.inherited-class', 'text.html.ruby source', 'markup.bold', 'meta.line.entry.logfile, meta.line.exit.logfile', 'support', 'source string source', 'entity', 'markup.heading', 'keyword.type.variant', 'meta.selector.css entity.other.attribute-name.id', 'constant.character.escaped, constant.character.escape, string source, string source.ruby', 'source.ocaml keyword.operator.symbol.infix.floating-point', 'storage.modifier', 'text source', 'meta.cast', 'string.interpolated', 'storage.type.method', 'keyword.other.unit', 'constant.character, constant.other', 'markup.deleted', 'markup comment', 'meta.diff.header, meta.separator.diff, meta.diff.index, meta.diff.range', 'meta.tag.sgml.doctype, meta.tag.sgml.doctype entity, meta.tag.sgml.doctype string, meta.tag.preprocessor.xml, meta.tag.preprocessor.xml entity, meta.tag.preprocessor.xml string', 'entity.name.preprocessor', 'string.quoted source', 'constant.character', 'string.literal', 'string constant.other.placeholder', 'keyword, storage', 'invalid.illegal', 'meta.line.error.logfile', 'invalid.trailing-whitespace', 'meta.property-value support.constant.named-color.css, meta.property-value constant', 'invalid.deprecated.trailing-whitespace', ]
@@geany_filetypes_post =
<<-HERE
  
# for embedded Python script (<script language="python">...</script>), Python styles from
# filetypes.python are used

[keywords]
html=a abbr acronym address applet area b base basefont bdo big blockquote body br button caption center cite code col colgroup dd del dfn dir div dl dt em embed fieldset font form frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins isindex kbd label legend li link map menu meta noframes noscript object ol optgroup option p param pre q quality s samp script select small span strike strong style sub sup table tbody td textarea tfoot th thead title tr tt u ul var xmlns leftmargin topmargin abbr accept-charset accept accesskey action align alink alt archive axis background bgcolor border cellpadding cellspacing char charoff charset checked cite class classid clear codebase codetype color cols colspan compact content coords data datafld dataformatas datapagesize datasrc datetime declare defer dir disabled enctype face for frame frameborder selected headers height href hreflang hspace http-equiv id ismap label lang language link longdesc marginwidth marginheight maxlength media framespacing method multiple name nohref noresize noshade nowrap object onblur onchange onclick ondblclick onfocus onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseover onmouseout onmouseup onreset onselect onsubmit onunload profile prompt pluginspage readonly rel rev rows rowspan rules scheme scope scrolling shape size span src standby start style summary tabindex target text title type usemap valign value valuetype version vlink vspace width text password checkbox radio submit reset file hidden image public doctype xml xml:lang
javascript=abs abstract acos anchor asin atan atan2 big bold boolean break byte case catch ceil char charAt charCodeAt class concat const continue cos Date debugger default delete do double else enum escape eval exp export extends false final finally fixed float floor fontcolor fontsize for fromCharCode function goto if implements import in indexOf Infinity instanceof int interface isFinite isNaN italics join lastIndexOf length link log long Math max MAX_VALUE min MIN_VALUE NaN native NEGATIVE_INFINITY new null Number package parseFloat parseInt pop POSITIVE_INFINITY pow private protected public push random return reverse round shift short sin slice small sort splice split sqrt static strike string String sub substr substring sup super switch synchronized tan this throw throws toLowerCase toString toUpperCase transient true try typeof undefined unescape unshift valueOf var void volatile while with
vbscript=and as byref byval case call const continue dim do each else elseif end error exit false for function global goto if in loop me new next not nothing on optional or private public redim rem resume select set sub then to true type while with boolean byte currency date double integer long object single string type variant
python=and assert break class continue complex def del elif else except exec finally for from global if import in inherit is int lambda not or pass print raise return tuple try unicode while yield long float str list
php=abstract and array as bool boolean break case catch cfunction __class__ class clone const continue declare default die __dir__ directory do double echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exception exit extends false __file__ final float for foreach __function__ function goto global if implements include include_once int integer interface isset __line__ list __method__ namespace __namespace__ new null object old_function or parent php_user_filter print private protected public real require require_once resource return __sleep static stdclass string switch this throw true try unset use var __wakeup while xor
sgml=ELEMENT DOCTYPE ATTLIST ENTITY NOTATION


[settings]
# default extension used when saving files
#extension=xml

# the following characters are these which a "word" can contains, see documentation
#wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

# if only single comment char is supported like # in this file, leave comment_close blank
comment_open=<!--
comment_close=-->

# set to false if a comment character/string should start at column 0 of a line, true uses any
# indentation of the line, e.g. setting to true causes the following on pressing CTRL+d
	#command_example();
# setting to false would generate this
#	command_example();
# This setting works only for single line comments
comment_use_indent=true

# context action command (please see Geany's main documentation for details)
context_action_cmd=

[styling]
# foreground;background;bold;italic
HERE
@@mybanner =
<<-hhh


hhh
@@geany_tokens =

foreground;background;bold;italic

%w{ html_default  html_tag html_tagunknown  html_attribute html_attributeunknown  html_number html_doublestring html_singlestring html_other  html_comment html_entity  html_tagend   html_xmlstart html_xmlend html_script html_asp  html_aspat html_cdata html_question html_value html_xccomment  sgml_default sgml_comment sgml_special sgml_command sgml_doublestring sgml_simplestring sgml_1st_param sgml_entity sgml_block_default sgml_1st_param_comment sgml_error  php_default  php_simplestring php_hstring php_number php_word php_variable php_comment php_commentline php_operator php_hstring_variable php_complex_variable  jscript_start jscript_default jscript_comment jscript_commentline jscript_commentdoc jscript_number jscript_word jscript_keyword jscript_doublestring jscript_singlestring jscript_symbols jscript_stringeol jscript_regex }
@@geany_ruby_tokens =

end

%w{default commentline number string character word global symbol classname defname
operator identifier modulename backticks instancevar classvar heredelim worddemoted stdin stdout stderr
datasection regex here_q here_qq here_qx string_q string_qq string_qx string_qr string_qw upper_bound error
pod }
@@geany_file_contents =
{:h=>"y"}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRMThemeParent

Returns a new instance of RMThemeParent.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 27

def initialize

@theme_successfully_created = false

@iterations = 1 
@iterations = ARGV[0].to_s.to_i if ARGV[0]
  #bold:                  <option name="FONT_TYPE" value="1" />
  #italic:                <option name="FONT_TYPE" value="2" />
  #bold & italic:         <option name="FONT_TYPE" value="3" />
  

  @min_bright = 0.0
  @max_bright =  1.0

  #	if we avoid any notion of "brightness", which is an absolute quality, then we
  # can make our background any color we want, then adjust contrast to taste
  #tighter contrast spec

  #with the contrast-determining functions we actually have available, 0.3 is actually quite high, near
  # the 80th percentile or so. FYI
  
  @min_cont = 0.30	
  @max_cont = 1.0
  
  @themeversion = 1
  @themename = ''
  @background_max_brightness = 0.14
  @background_min_brightness = 0.65
  @background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
  @background_color_styles = [:dark,:light,:any]
  
  @bg_color_style = @background_color_styles[0] #0 = dark 1 = light (whitish), 2 = any color
#  @foreground_min_brightness = 0.4

  @document_globals = {}
  @backgroundcolor = randcolor( :shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
  @textmate_hash = {}
  reset_colorsets
end

Instance Attribute Details

#themenameObject

Returns the value of attribute themename.



25
26
27
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 25

def themename
  @themename
end

Instance Method Details

#before_create(outputdir = , bg_color_style = :dark, colorsets = [], rand_seed = nil) ⇒ Object

def handle_rand_seed



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 201

def before_create( outputdir=ENV['PWD'], bg_color_style=:dark, colorsets=[], rand_seed=nil)
  defaults = {}
  defaults[:outputdir] = File.expand_path outputdir
  defaults[:bg_color_style] = bg_color_style
  opts = defaults
  @opts = opts
  @bg_color_style = opts[:bg_color_style]  
  @background_grey = ([:dark, :light].include? opts[:bg_color_style] ) #whitish or blackish bg are both "grey" 
  
  if colorsets.is_a?(Array) && colorsets.size > 0
    @color_sets = colorsets 
    clean_colorsets
  else
    reset_colorsets
  end
  
  case opts[:bg_color_style]
    when :dark #blackish background
      @background_min_brightness = 0.0 
      @background_max_brightness = 0.14 
    when :light #whitish background
      @background_min_brightness = 0.75 
      @background_max_brightness = 1.0 
    when :any #colored (any) bg
      @background_min_brightness = 0.0 
      @background_max_brightness = 1.0 
  end
  @backgroundcolor= randcolor(:shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness,
    :min_bright => @background_min_brightness )# "0"
  @document_globals[:backgroundcolor] = @backgroundcolor
  @themename = randthemename
end

#clean_colorsetsObject



89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 89

def clean_colorsets
  # trim each color set down to at most 2 colors 
  if @color_sets.size > 0 
  ncs = []
    @color_sets.each  do |cs|
        while cs.size > 3 do
          cs.delete(cs.keys[0])              
        end
        ncs << cs
    end
  @color_sets = ncs
  end     
end

#clear_colorsetsObject



103
104
105
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 103

def clear_colorsets
  @color_sets=[]
end

#handle_rand_seed(rand_seed = nil) ⇒ Object



186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 186

def handle_rand_seed(rand_seed=nil)
   if rand_seed then
     #if a random seed is given, we need to reset the colorsets and bgstyle according to random numbers created AFTER the generator is seeded, forsaking whatever came in as parameters, since they are irrelevant if the desire is to recreate a previous theme from a random number seed
     Kernel.srand(rand_seed) 
     @random_seed=rand_seed
     bg_color_style=rand(@background_color_styles.size).to_i
     reset_colorsets
   else
   #the reason we want the native seed used by this ruby implementation is that creating one ourselves might be erroneous in not using enough bits, or otherwise being insufficiently entropic. There is a "formula" used by MRI but we don't know what it is, so we'll just harvest the number from a fresh call to srand, then reseed the rng using that number. 
     Kernel.srand
     @random_seed = Kernel.srand #this sets @random_seed to the value used in the call above
     Kernel.srand(@random_seed)
   end
end

#randcolor(opts = {}) ⇒ Object



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 130

def randcolor(opts={})
  df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255 
        :bg_rgb => nil,
        :min_cont  => @min_cont, #if a backrgb (background color)  is supplied this will be used to create a minimum contrast with it.
        :max_cont => @max_cont,
        :max_bright => @max_bright,
        :min_bright => @min_bright,
        :shade_of_grey => false} #forces r == g == b
  df = df.merge opts  
  df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
  color = brightok = contok = nil;
  cr=Color::RGB.new
  #failsafe should make sure the program never hangs trying to create 
  # a random color. 
  failsafe=200
  failsafe_mid = (failsafe/2).to_i
  usecolorsets = (!@color_sets.nil? && @color_sets != []) 
  
  last_contrast = this_contrast = nil
  best_color_yet = nil
  contok = true # this will only get switched off if there is a background color submitted 
  contrast_mid = ( (df[:min_cont] + df[:max_cont]) / 2.0 ).abs
  while (!color || !brightok || !contok && failsafe > 0) do
    if df[:shade_of_grey] == true 
      g = b = r = rand*256   
    elsif  usecolorsets && failsafe > failsafe_mid 
      cs = @color_sets.shuffle[0] 
      if cs.keys.include? :r then r = cr.next_gaussian( cs[:r])*256 else r = (df[:r] || rand*256)%256 end 
      if cs.keys.include? :g then g = cr.next_gaussian( cs[:g])*256 else g = (df[:g] || rand*256)%256 end 
      if cs.keys.include? :b then b = cr.next_gaussian( cs[:b])*256 else b = (df[:b] || rand*256)%256 end 
    else
      r = (df[:r] || rand*256)%256 #mod for robustness 
      g = (df[:g] || rand*256)%256
      b = (df[:b] || rand*256)%256
    end
    
    color = Color::RGB.new(r,g,b)
    best_color_yet ||= color
    
    if (df[:bg_rgb]) then 
      this_contrast = color.contrast(df[:bg_rgb]) 
      last_contrast ||= this_contrast 
      best_color_yet = (this_contrast - contrast_mid).abs < (last_contrast - contrast_mid ).abs ? color : best_color_yet
      contok = (df[:min_cont]..df[:max_cont]).include?( this_contrast )
    end
    brightok =  (df[:min_bright]..df[:max_bright]).include?( color.to_hsl.brightness )  
    
  failsafe -= 1
  end #while

  cn= failsafe <= 0 ? best_color_yet.html : color.html
  cn= cn.slice(1,cn.size)

  return cn
end

#randfilename(existing = "") ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 115

def randfilename(existing = "")
 if existing != "" then
  out=existing
 else
  ar=["a","b","f","h","z","1","5"]
  ar.shuffle! 
  out =""
  ar.each { |n|
    out << n
  }
 end
 return "rmt_"+out+".xml"
end

#randthemenameObject



107
108
109
110
111
112
113
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 107

def randthemename
  out = " "
  while out.include? " "   do 
   out = @@adjectives[rand * @@adjectives.size]+"_"+@@nouns[rand * @@nouns.size]
  end 
  return out
end

#reset_colorsetsObject

def initialize



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/rmthemegen/rmthemegen_parent.rb', line 67

def reset_colorsets()
  #color sets: add to the variable @color_sets a hash containing 1 or 2 values in [0..1), indicating a shade 
  # of red or green that the random colors will interpolate around.  
  # if anything exists in @color_sets, the program will, when choosing its next random color, grab a random
  # color set, and then the next random color value produced will have up to 2 of its components (r, g, or b) 
  # chosen with the specified r,g, or b as the median for a random gaussian, which will of course be limited
  # to the range [0..1)

  @color_sets = []
  (rand*4).to_i.times { 
    @color_set = {}
    3.times do
     case 
       when rand < 0.333 then @color_set[:r] = rand
       when rand < 0.666 then @color_set[:g] = rand
       else @color_set[:b] = rand
      end
    end #8times
      @color_sets << @color_set
   } #rand*4times    
end