{"id":28832706,"url":"https://github.com/elaforge/simple-src-utils","last_synced_at":"2025-10-08T03:01:48.691Z","repository":{"id":56878069,"uuid":"127801697","full_name":"elaforge/simple-src-utils","owner":"elaforge","description":"source code utilities, for editor integration","archived":false,"fork":false,"pushed_at":"2021-06-21T17:42:36.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-29T10:40:30.128Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elaforge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-02T19:21:01.000Z","updated_at":"2021-06-21T17:42:39.000Z","dependencies_parsed_at":"2022-08-20T23:10:15.319Z","dependency_job_id":null,"html_url":"https://github.com/elaforge/simple-src-utils","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elaforge/simple-src-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elaforge%2Fsimple-src-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elaforge%2Fsimple-src-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elaforge%2Fsimple-src-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elaforge%2Fsimple-src-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elaforge","download_url":"https://codeload.github.com/elaforge/simple-src-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elaforge%2Fsimple-src-utils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269673796,"owners_count":24457207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-19T08:13:44.092Z","updated_at":"2025-10-08T03:01:48.605Z","avatar_url":"https://github.com/elaforge.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Some small source code manipulation tools I use with vim.  They're external\nfilters, though, so if you use acme instead of vim, they should work fine there\ntoo.  See included `vimrc` for examples.\n\n- cmt - Comment and uncomment code.\n\n- string-literal - Toggle between raw text and list of lines or Haskell\nbackslash string gap style.  Copy paste from its usage:\n\n`string-literal [ --wrapped --{add,remove,toggle}-{backslash,lines} ]`\n\nConvert between plain text and either backslash-continued string\nliterals, or list of lines style strings.  This is to work around\nhaskell's lack of multi-line string literals.  Bind the toggle variant\nto a vim key to switch between raw text and haskell string literal.\n\nIt assumes a single level of indent for the strings, and leaves the\nindent even in the raw form, so that the text will continue to fit in\nmore or less the same number of columns.  This means they will look\na bit short if printed literally on the terminal, but if you care about\nthat, use --wrapped mode and have some terminal-aware layer do the\nwrapping.\n\n--wrapped mode assumes that someone else will be wrapping the text.\nIt doesn't put in newlines, and separates wrapped with a leading space.\nA paragraph newline in the input becomes an explicit newline in the\nhaskell string.  Since it assumes someone else is wrapping, it won't\npreserve your own leading spaces.  If you are doing explicit formatting\nthen don't use --wrapped.\n\nStandard CPP doesn't like Haskell string-gap syntax.  You can either use\ncpphs via -pgmP 'cpphs --cpp', or use lines mode, which is more\ncluttered but doesn't make CPP mad.  Presumably you have a unlines or\nText.unlines call at the front of the list.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felaforge%2Fsimple-src-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felaforge%2Fsimple-src-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felaforge%2Fsimple-src-utils/lists"}