702 lines
14 KiB
Plaintext
702 lines
14 KiB
Plaintext
{
|
||
"auto_complete":
|
||
{
|
||
"selected_items":
|
||
[
|
||
[
|
||
"get",
|
||
"getShowCourseR"
|
||
],
|
||
[
|
||
"err",
|
||
"errorMsgs"
|
||
],
|
||
[
|
||
"set",
|
||
"setMessage"
|
||
]
|
||
]
|
||
},
|
||
"buffers":
|
||
[
|
||
{
|
||
"file": "src/Application.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 7271,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Foundation.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 11626,
|
||
"encoding": "UTF-8",
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Import.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 125,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Model.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 886,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"contents": "{-# LANGUAGE RecordWildCards #-}\n{-# LANGUAGE PatternGuards #-}\n{-# LANGUAGE TemplateHaskell #-}\n{-# LANGUAGE NoImplicitPrelude #-}\n{-# LANGUAGE OverloadedStrings #-}\n{-# LANGUAGE DeriveGeneric, DeriveDataTypeable #-}\nmodule Model.Types where\n\nimport ClassyPrelude\n\nimport Database.Persist.TH\nimport Database.Persist.Class\nimport Database.Persist.Sql\n\nimport Web.HttpApiData\n\nimport Data.Text (Text)\nimport qualified Data.Text as Text\n\nimport Text.Read (readMaybe)\n\n-- import Data.CaseInsensitive (CI)\nimport qualified Data.CaseInsensitive as CI\n\nimport Yesod.Core.Dispatch (PathPiece(..))\nimport Data.Aeson (FromJSON(..), ToJSON(..), withText, Value(..))\n\nimport GHC.Generics (Generic)\nimport Data.Typeable (Typeable)\n\n\ndata SheetType = Regular | Bonus | Extra \n deriving (Show, Read, Eq, Ord, Enum, Bounded) \nderivePersistField \"SheetType\"\n\ndata ExamStatus = Attended | NoShow | Voided\n deriving (Show, Read, Eq, Ord, Enum, Bounded) \nderivePersistField \"ExamStatus\"\n\n\ndata Season = Summer | Winter\n deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Typeable)\n\nseasonToChar :: Season -> Char\nseasonToChar Summer = 'S'\nseasonToChar Winter = 'W'\n\nseasonFromChar :: Char -> Either Text Season\nseasonFromChar c\n | c ~= 'S' = Right Summer\n | c ~= 'W' = Right Winter\n | otherwise = Left $ \"Invalid season character: ‘\" <> tshow c <> \"’\"\n where\n (~=) = (==) `on` CI.mk\n\ndata TermIdentifier = TermIdentifier\n { year :: Integer -- ^ Using 'Integer' to model years is consistent with 'Data.Time.Calendar'\n , season :: Season\n } deriving (Show, Read, Eq, Ord, Generic, Typeable)\n\ntermToText :: TermIdentifier -> Text\ntermToText TermIdentifier{..} = Text.pack $ seasonToChar season : show year\n\ntermFromText :: Text -> Either Text TermIdentifier\ntermFromText t\n | (s:ys) <- Text.unpack t\n , Just year <- readMaybe ys\n , Right season <- seasonFromChar s\n = Right TermIdentifier{..}\n | otherwise = Left $ \"Invalid TermIdentifier: “\" <> t <> \"”\"\n\ninstance PersistField TermIdentifier where\n toPersistValue = PersistText . termToText\n fromPersistValue (PersistText t) = termFromText t\n fromPersistValue x = Left $ \"Expected TermIdentifier, received: \" <> tshow x\n\ninstance PersistFieldSql TermIdentifier where\n sqlType _ = SqlString\n\ninstance ToHttpApiData TermIdentifier where\n toUrlPiece = termToText\n\ninstance FromHttpApiData TermIdentifier where\n parseUrlPiece = termFromText\n\ninstance PathPiece TermIdentifier where\n fromPathPiece = either (const Nothing) Just . termFromText\n toPathPiece = termToText\n\ninstance ToJSON TermIdentifier where\n toJSON = String . termToText\n\ninstance FromJSON TermIdentifier where\n parseJSON = withText \"Term\" $ either (fail . Text.unpack) return . termFromText\n\ninstance Class Data where\n func = \n",
|
||
"file": "src/Model/Types.hs",
|
||
"file_size": 2724,
|
||
"file_write_time": 131516115030281923,
|
||
"settings":
|
||
{
|
||
"buffer_size": 2753,
|
||
"encoding": "UTF-8",
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Settings.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 5994,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Handler/Common.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 781,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Handler/Home.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 2324,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Handler/Assist.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 2858,
|
||
"encoding": "UTF-8",
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "templates/newcourse.hamlet",
|
||
"settings":
|
||
{
|
||
"buffer_size": 606,
|
||
"encoding": "UTF-8",
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "src/Handler/Profile.hs",
|
||
"settings":
|
||
{
|
||
"buffer_size": 411,
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "models",
|
||
"settings":
|
||
{
|
||
"buffer_size": 4388,
|
||
"encoding": "UTF-8",
|
||
"line_ending": "Unix"
|
||
}
|
||
},
|
||
{
|
||
"file": "stack.yaml",
|
||
"settings":
|
||
{
|
||
"buffer_size": 2233,
|
||
"line_ending": "Unix"
|
||
}
|
||
}
|
||
],
|
||
"build_system": "",
|
||
"build_system_choices":
|
||
[
|
||
],
|
||
"build_varint": "",
|
||
"command_palette":
|
||
{
|
||
"height": 121.0,
|
||
"last_filter": "",
|
||
"selected_items":
|
||
[
|
||
],
|
||
"width": 523.0
|
||
},
|
||
"console":
|
||
{
|
||
"height": 192.0,
|
||
"history":
|
||
[
|
||
"help",
|
||
"ll"
|
||
]
|
||
},
|
||
"distraction_free":
|
||
{
|
||
"menu_visible": true,
|
||
"show_minimap": false,
|
||
"show_open_files": false,
|
||
"show_tabs": false,
|
||
"side_bar_visible": false,
|
||
"status_bar_visible": false
|
||
},
|
||
"file_history":
|
||
[
|
||
"/home/jost/programming/Haskell/Yesod/uniworx/src/Handler/Comment.hs"
|
||
],
|
||
"find":
|
||
{
|
||
"height": 52.0
|
||
},
|
||
"find_in_files":
|
||
{
|
||
"height": 128.0,
|
||
"where_history":
|
||
[
|
||
""
|
||
]
|
||
},
|
||
"find_state":
|
||
{
|
||
"case_sensitive": false,
|
||
"find_history":
|
||
[
|
||
"Html",
|
||
"setMessage",
|
||
"Text",
|
||
"Integer",
|
||
"matrikel",
|
||
"AuthId",
|
||
"FileInfo",
|
||
"fileInfo"
|
||
],
|
||
"highlight": true,
|
||
"in_selection": false,
|
||
"preserve_case": false,
|
||
"regex": false,
|
||
"replace_history":
|
||
[
|
||
],
|
||
"reverse": false,
|
||
"show_context": true,
|
||
"use_buffer2": true,
|
||
"whole_word": false,
|
||
"wrap": true
|
||
},
|
||
"groups":
|
||
[
|
||
{
|
||
"selected": 8,
|
||
"sheets":
|
||
[
|
||
{
|
||
"buffer": 0,
|
||
"file": "src/Application.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 7271,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
0,
|
||
0
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 12,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 1,
|
||
"file": "src/Foundation.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 11626,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
9330,
|
||
9330
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 5125.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 6,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 2,
|
||
"file": "src/Import.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 125,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
0,
|
||
0
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax"
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 5,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 3,
|
||
"file": "src/Model.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 886,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
0,
|
||
0
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax"
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 2,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 4,
|
||
"file": "src/Model/Types.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 2753,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
2726,
|
||
2731
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 2,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 1380.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 1,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 5,
|
||
"file": "src/Settings.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 5994,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
104,
|
||
104
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 11,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 6,
|
||
"file": "src/Handler/Common.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 781,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
0,
|
||
0
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax"
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 10,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 7,
|
||
"file": "src/Handler/Home.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 2324,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
404,
|
||
404
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 138.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 7,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 8,
|
||
"file": "src/Handler/Assist.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 2858,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
454,
|
||
454
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 0,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 9,
|
||
"file": "templates/newcourse.hamlet",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 606,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
0,
|
||
0
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Text/Plain text.tmLanguage",
|
||
"tab_size": 4,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 4,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 10,
|
||
"file": "src/Handler/Profile.hs",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 411,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
213,
|
||
213
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Haskell/Haskell.sublime-syntax"
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 8,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 11,
|
||
"file": "models",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 4388,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
747,
|
||
747
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/Text/Plain text.tmLanguage",
|
||
"tab_size": 2,
|
||
"translate_tabs_to_spaces": true
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 138.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 3,
|
||
"type": "text"
|
||
},
|
||
{
|
||
"buffer": 12,
|
||
"file": "stack.yaml",
|
||
"semi_transient": false,
|
||
"settings":
|
||
{
|
||
"buffer_size": 2233,
|
||
"regions":
|
||
{
|
||
},
|
||
"selection":
|
||
[
|
||
[
|
||
663,
|
||
663
|
||
]
|
||
],
|
||
"settings":
|
||
{
|
||
"syntax": "Packages/YAML/YAML.sublime-syntax"
|
||
},
|
||
"translation.x": 0.0,
|
||
"translation.y": 0.0,
|
||
"zoom_level": 1.0
|
||
},
|
||
"stack_index": 9,
|
||
"type": "text"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"incremental_find":
|
||
{
|
||
"height": 33.0
|
||
},
|
||
"input":
|
||
{
|
||
"height": 0.0
|
||
},
|
||
"layout":
|
||
{
|
||
"cells":
|
||
[
|
||
[
|
||
0,
|
||
0,
|
||
1,
|
||
1
|
||
]
|
||
],
|
||
"cols":
|
||
[
|
||
0.0,
|
||
1.0
|
||
],
|
||
"rows":
|
||
[
|
||
0.0,
|
||
1.0
|
||
]
|
||
},
|
||
"menu_visible": true,
|
||
"output.find_results":
|
||
{
|
||
"height": 0.0
|
||
},
|
||
"pinned_build_system": "",
|
||
"project": "uniworx.sublime-project",
|
||
"replace":
|
||
{
|
||
"height": 61.0
|
||
},
|
||
"save_all_on_build": true,
|
||
"select_file":
|
||
{
|
||
"height": 0.0,
|
||
"last_filter": "",
|
||
"selected_items":
|
||
[
|
||
[
|
||
"",
|
||
"~/programming/Haskell/Yesod/uniworx/src/Handler/Assist.hs"
|
||
],
|
||
[
|
||
"mo",
|
||
"~/programming/Haskell/Yesod/uniworx/models"
|
||
],
|
||
[
|
||
"a",
|
||
"~/programming/Haskell/Yesod/uniworx/src/Handler/Assist.hs"
|
||
],
|
||
[
|
||
"f",
|
||
"~/programming/Haskell/Yesod/uniworx/src/Foundation.hs"
|
||
],
|
||
[
|
||
"m",
|
||
"~/programming/Haskell/Yesod/uniworx/models"
|
||
]
|
||
],
|
||
"width": 0.0
|
||
},
|
||
"select_project":
|
||
{
|
||
"height": 0.0,
|
||
"last_filter": "",
|
||
"selected_items":
|
||
[
|
||
],
|
||
"width": 0.0
|
||
},
|
||
"select_symbol":
|
||
{
|
||
"height": 0.0,
|
||
"last_filter": "",
|
||
"selected_items":
|
||
[
|
||
],
|
||
"width": 0.0
|
||
},
|
||
"selected_group": 0,
|
||
"settings":
|
||
{
|
||
},
|
||
"show_minimap": true,
|
||
"show_open_files": false,
|
||
"show_tabs": true,
|
||
"side_bar_visible": true,
|
||
"side_bar_width": 200.0,
|
||
"status_bar_visible": true,
|
||
"template_settings":
|
||
{
|
||
}
|
||
}
|