{"id":15405889,"url":"https://github.com/elia/floobits-textmate","last_synced_at":"2026-02-17T21:01:24.963Z","repository":{"id":17207130,"uuid":"19975579","full_name":"elia/floobits-textmate","owner":"elia","description":null,"archived":false,"fork":false,"pushed_at":"2014-05-20T09:41:03.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-17T22:32:38.411Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-20T09:40:54.000Z","updated_at":"2019-07-09T11:45:02.000Z","dependencies_parsed_at":"2022-07-13T14:44:18.701Z","dependency_job_id":null,"html_url":"https://github.com/elia/floobits-textmate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elia/floobits-textmate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elia%2Ffloobits-textmate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elia%2Ffloobits-textmate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elia%2Ffloobits-textmate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elia%2Ffloobits-textmate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elia","download_url":"https://codeload.github.com/elia/floobits-textmate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elia%2Ffloobits-textmate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29558100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T20:52:40.164Z","status":"ssl_error","status_checked_at":"2026-02-17T20:48:10.325Z","response_time":100,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2024-10-01T16:18:51.833Z","updated_at":"2026-02-17T21:01:24.945Z","avatar_url":"https://github.com/elia.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Floobits TextMate (2) adapter\n\n\u003e 11:09 (elia) ggreer, any plan for TM2, (I can help)\n\u003e 11:09 (elia) ?\n\u003e 11:12 \u003ckansface\u003e no plan\n\u003e 11:13 \u003ckansface\u003e sorry :(\n\u003e 11:15 (elia) kansface, that's ok, but if there's an api available maybe it can be done by community :)\n\u003e 11:15 \u003ckansface\u003e elia: its possible, but prohibitively hard\n\u003e 11:15 \u003ckansface\u003e it takes us about 3 -4 man months to get one working\n\u003e 11:16 \u003ckansface\u003e and we mostly know what we are doing\n\u003e 11:17 (elia) kansface, :(\n\u003e 11:18 (elia) the project is cool, but that's a bummer\n\u003e 11:18 \u003ckansface\u003e yeah\n\u003e 11:18 \u003ckansface\u003e 3-4 months is the shortest amount of time btw\n\u003e 11:18 (elia) kansface, not even a subset can be ported, maybe heavily limited\n\u003e 11:18 \u003ckansface\u003e hrm\n\u003e 11:19 \u003ckansface\u003e I'm not sure off the top of my head\n\u003e 11:20 (elia) kansface, at this point even documenting it seems daunting…\n\u003e 11:20 (elia) amirite?\n\u003e 11:20 \u003ckansface\u003e well\n\u003e 11:20 \u003ckansface\u003e there are things that are so much more pressing\n\u003e 11:21 \u003ckansface\u003e and we want to clean t up before we document it\n\u003e 11:21 (elia) kansface, k, fair nuff, maybe it'll become easier once it's cleaned up a bit\n\u003e 11:22 \u003ckansface\u003e what language does it use for plugins?\n\u003e 11:22 (elia) kansface, two ways:\n\u003e 11:23 (elia) bash scripts with hashbang (language can be anything)\n\u003e 11:23 (elia) or…\n\u003e 11:23 (elia) obj-C / C++ if you want to integrate deeply\n\u003e 11:23 \u003ckansface\u003e hrm\n\u003e 11:23 \u003ckansface\u003e ouch\n\u003e 11:24 (elia) but best bet is to make some apis available at the obj-c layer that allows projects like this to integrate\n\u003e 11:25 (elia) kansface, which languages you use for other plugins (I know it's python for ST)\n\u003e 11:26 \u003ckansface\u003e python for emacs/vim/st\n\u003e 11:26 \u003ckansface\u003e java for intellij\n\u003e 11:26 \u003ckansface\u003e we have some JS too\n\u003e 11:26 \u003ckansface\u003e never finished Atom integration\n\u003e 11:26 \u003ckansface\u003e too immature\n\u003e 11:27 \u003ckansface\u003e although we are working on VS atm\n\u003e 11:27 (elia) kansface, so python sounds like the best bet (via #!/bin/env python)\n\u003e 11:27 \u003ckansface\u003e so maybe we'll have some C++ soon\n\u003e 11:28 (elia) kansface, there's any python core from the emacs/vim/st plugins that can be reused?\n\u003e 11:28 \u003ckansface\u003e https://github.com/Floobits/plugin-common-python\u0001\n\u003e 11:28 \u003cfloobot1\u003e Floobits/plugin-common-python · GitHub\n\u003e 11:29 (elia) kansface, last thing, if you can give me an idea on the kind of apis that should be available on the hosting editor that would be great\n\u003e 11:30 (elia) probably better to add them to the plugin-common-python readme directly…\n\u003e 11:30 \u003ckansface\u003e kind?\n\u003e 11:30 \u003ckansface\u003e ah\n\u003e 11:30 \u003ckansface\u003e so\n\u003e 11:30 \u003ckansface\u003e we use both line delimited json over ssl and https\n\u003e 11:31 \u003ckansface\u003e OT happens over ssl\n\u003e 11:31 \u003ckansface\u003e some set up happens over http\n\u003e 11:32 \u003ckansface\u003e events for OT are asyc and flow both ways\n\u003e 11:32 \u003ckansface\u003e they are not necessarily handled in order on the backend\n\u003e 11:33 \u003ckansface\u003e general event handling for stuff on the wire: https://github.com/Floobits/plugin-common-python/blob/master/handlers/floo_handler.py#L128\u0001\n\u003e 11:33 \u003cfloobot1\u003e plugin-common-python/handlers/floo_handler.py at master · Floobits/plugin-common-python · GitHub\n\u003e 11:33 \u003ckansface\u003e (starts with _on\n\u003e 11:33 \u003ckansface\u003e )\n\u003e 11:33 \u003ckansface\u003e http stuff\n\u003e 11:33 \u003ckansface\u003e https://github.com/Floobits/plugin-common-python/blob/master/api.py\u0001\n\u003e 11:33 \u003cfloobot1\u003e plugin-common-python/api.py at master · Floobits/plugin-common-python · GitHub\n\u003e 11:34 \u003ckansface\u003e there is no abstraction layer for events from editors really\n\u003e 11:35 \u003ckansface\u003e although each plugin defines an editor.py with a consistent, portable interface to call some editor things\n\u003e 11:35 \u003ckansface\u003e like so https://github.com/Floobits/floobits-sublime/blob/master/floo/editor.py\u0001\n\u003e 11:35 \u003cfloobot1\u003e floobits-sublime/floo/editor.py at master · Floobits/floobits-sublime · GitHub\n\u003e 11:36 (elia) so ideally I just reimplement editor.py for TM2?\n\u003e 11:36 \u003ckansface\u003e the plug in aso maintains state for each buffer in the workspace\n\u003e 11:36 \u003ckansface\u003e so, that would be necessary but not sufficient\n\u003e 11:37 \u003ckansface\u003e you'd need to implement something like this too https://github.com/Floobits/floobits-sublime/blob/master/floo/listener.py\u0001\n\u003e 11:37 \u003cfloobot1\u003e floobits-sublime/floo/listener.py at master · Floobits/floobits-sublime · GitHub\n\u003e 11:37 \u003ckansface\u003e i.e., handle changes from the editor\n\u003e 11:38 \u003ckansface\u003e like I said, everything is terrible\n\u003e 11:38 \u003ckansface\u003e (our code is bad)\n\u003e 11:39 (elia) no worrie ;)\n\u003e 11:39 (elia) *worries\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felia%2Ffloobits-textmate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felia%2Ffloobits-textmate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felia%2Ffloobits-textmate/lists"}