{"id":22946618,"url":"https://github.com/mmower/logical_file","last_synced_at":"2025-10-04T09:17:36.546Z","repository":{"id":66365704,"uuid":"447627850","full_name":"mmower/logical_file","owner":"mmower","description":"An Elixir library to create logical files (virtual files backed by disk files)","archived":false,"fork":false,"pushed_at":"2022-05-25T09:29:34.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T14:45:40.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmower.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-13T14:22:31.000Z","updated_at":"2022-01-13T14:30:13.000Z","dependencies_parsed_at":"2023-02-20T16:15:36.814Z","dependency_job_id":null,"html_url":"https://github.com/mmower/logical_file","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmower%2Flogical_file","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmower%2Flogical_file/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmower%2Flogical_file/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmower%2Flogical_file/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmower","download_url":"https://codeload.github.com/mmower/logical_file/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246724614,"owners_count":20823542,"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","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-12-14T14:47:28.380Z","updated_at":"2025-10-04T09:17:31.510Z","avatar_url":"https://github.com/mmower.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LogicalFile\n\nA LogicalFile is a facade that appears to be a contiguous file of lines of\ntext but which is actually composed of sections that may come from different\nbacking text files.\n\nThe LogicalFile preserves the mapping of a logical line to the section and\nlocal line number that the line is provided by.\n\nLogicalFile provides functions for modifying \u0026 updating the text while\npreserving the backing structure. For example it supports inserting a new\nfile within the LogicalFile.\n\nLogicalFile supports a system of Macros to process the text and includes\nsample implementations of a line-comment and include macro.\n\nAn example use case is a compiler for a language with support for including\none source file from another. The LogicalFile represents the entire source to\nbe compiled while preserving the relationship to the indivdual source files\nto faciliate error reporting.\n\n## Installation\n\nIf [available in Hex](https://hex.pm/docs/publish), the package can be installed\nby adding `logical_file` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:logical_file, \"~\u003e 1.0.0\"}\n  ]\nend\n```\n\n## Examples\n\n```elixir\nalias LogicalFile\n\nfile =\n  LogicalFile.read(\"lib\", \"foo.src\")\n  |\u003e LogicalFile.insert(\"bar.src\", 25))\n```\n\n### Documentation\n\nDocumentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)\nand published on [HexDocs](https://hexdocs.pm). Once published, the docs can\nbe found at \u003chttps://hexdocs.pm/logical_file\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmower%2Flogical_file","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmower%2Flogical_file","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmower%2Flogical_file/lists"}