[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yaml",
    "content": "name: Bug Report\ndescription: File a bug report\ntitle: \"bug: \"\nlabels: [\"bug\", \"triage\"]\nassignees:\n  - octocat\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        Thanks for taking the time to fill out this bug report!\n  - type: textarea\n    id: what-happened\n    attributes:\n      label: What happened?\n      description: Also tell us, what did you expect to happen?\n      placeholder: Tell us what you see!\n    validations:\n      required: true\n  - type: textarea\n    id: nvim-version\n    attributes:\n      label: Neovim Version\n      description: This will be automatically formatted into code, so no need for backticks.\n      placeholder: Output of `nvim --version`\n      render: shell\n    validations:\n      required: true\n  - type: textarea\n    id: telescope-version\n    attributes:\n      label: Telescope.nvim Version\n      description: Version of your telescope plugin or commit hash\n    validations:\n      required: true\n  - type: textarea\n    id: logs\n    attributes:\n      label: Relevant log output\n      description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.\n      render: shell\n  - type: textarea\n    id: additional-notes\n    attributes:\n      label: Additional notes\n      placeholder: Any additional notes for context\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "content": "name: Feature Request\ndescription: File a feature request\ntitle: \"feat: \"\nlabels: [\"feat\", \"triage\"]\nassignees:\n  - octocat\nbody:\n  - type: markdown\n    attributes:\n      value: |\n        Thanks for taking the time to fill out this feature request!\n  - type: textarea\n    id: what-you-like\n    attributes:\n      label: What would you like?\n      description: Also tell us notes of how you would want the api design to be\n    validations:\n      required: true\n  - type: textarea\n    id: additional-notes\n    attributes:\n      label: Additional notes\n      placeholder: Any additional notes for context\n"
  },
  {
    "path": ".gitignore",
    "content": "# Compiled Lua sources\nluac.out\n\n# luarocks build files\n*.src.rock\n*.zip\n*.tar.gz\n\n# Object files\n*.o\n*.os\n*.ko\n*.obj\n*.elf\n\n# Precompiled Headers\n*.gch\n*.pch\n\n# Libraries\n*.lib\n*.a\n*.la\n*.lo\n*.def\n*.exp\n\n# Shared objects (inc. Windows DLLs)\n*.dll\n*.so\n*.so.*\n*.dylib\n\n# Executables\n*.exe\n*.out\n*.app\n*.i*86\n*.x86_64\n*.hex\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n- Using welcoming and inclusive language\n- Being respectful of differing viewpoints and experiences\n- Gracefully accepting constructive criticism\n- Attempting collaboration before conflict\n- Focusing on what is best for the community\n- Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n- Violence, threats of violence, or inciting others to commit self-harm\n- The use of sexualized language or imagery and unwelcome sexual attention or advances\n- Trolling, intentionally spreading misinformation, insulting/derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or electronic address, without explicit permission\n- Abuse of the reporting process to intentionally harass or exclude others\n- Advocating for, or encouraging, any of the above behavior\n- Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting us anonymously through [this form](https://goo.gl/forms/chVYUnA4bP70WGsL2). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\nIf you are unsure whether an incident is a violation, or whether the space where the incident took place is covered by our Code of Conduct, **we encourage you to still report it**. We would prefer to have a few extra reports where we decide to take no action, than to leave an incident go unnoticed and unresolved that may result in an individual or group to feel like they can no longer participate in the community. Reports deemed as not a violation will also allow us to improve our Code of Conduct and processes surrounding it. If you witness a dangerous situation or someone in distress, we encourage you to report even if you are only an observer.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), [version 1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing Guide\n\nRead our [Code of Conduct](./CODE_OF_CONDUCT.md) to keep our community approachable and respectable.\n\nIn this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.\n\n## Getting started\n\n1. [Fork](https://github.com/princejoogie/dir-telescope.nvim/fork) the repository\n2. Commit your update\n3. When you're finished with the changes, create a pull request, also known as a PR\n4. Wait for maintainers to review your PR.\n5. Congratulations! your PR is merged\n"
  },
  {
    "path": "LICENSE",
    "content": "GNU GENERAL PUBLIC LICENSE\n\nVersion 3, 29 June 2007\n\nCopyright © 2007\nprincejoogie\n\nEveryone is permitted to copy and distribute verbatim copies of\nthis license document, but changing it is not allowed.\n\nPreamble\n\nThe GNU General\nPublic License is a free, copyleft license for software and other kinds of\nworks.\n\nThe licenses for most software and other practical works are designed to\ntake away your freedom to share and change the works. By contrast, the GNU\nGeneral Public License is intended to guarantee your freedom to share and change\nall versions of a program--to make sure it remains free software for all its\nusers. We, the Free Software Foundation, use the GNU General Public License for\nmost of our software; it applies also to any other work released this way by its\nauthors. You can apply it to your programs, too.\n\nWhen we speak of free software,\nwe are referring to freedom, not price. Our General Public Licenses are designed\nto make sure that you have the freedom to distribute copies of free software (and\ncharge for them if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new free\nprograms, and that you know you can do these things.\n\nTo protect your rights, we\nneed to prevent others from denying you these rights or asking you to surrender\nthe rights. Therefore, you have certain responsibilities if you distribute copies\nof the software, or if you modify it: responsibilities to respect the freedom of\nothers.\n\nFor example, if you distribute copies of such a program, whether gratis\nor for a fee, you must pass on to the recipients the same freedoms that you\nreceived. You must make sure that they, too, receive or can get the source code.\nAnd you must show them these terms so they know their rights.\n\nDevelopers that\nuse the GNU GPL protect your rights with two steps: (1) assert copyright on the\nsoftware, and (2) offer you this License giving you legal permission to copy,\ndistribute and/or modify it.\n\nFor the developers' and authors' protection, the\nGPL clearly explains that there is no warranty for this free software. For both\nusers' and authors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to authors of\nprevious versions.\n\nSome devices are designed to deny users access to install or\nrun modified versions of the software inside them, although the manufacturer can\ndo so. This is fundamentally incompatible with the aim of protecting users'\nfreedom to change the software. The systematic pattern of such abuse occurs in\nthe area of products for individuals to use, which is precisely where it is most\nunacceptable. Therefore, we have designed this version of the GPL to prohibit the\npractice for those products. If such problems arise substantially in other\ndomains, we stand ready to extend this provision to those domains in future\nversions of the GPL, as needed to protect the freedom of users.\n\nFinally, every\nprogram is threatened constantly by software patents. States should not allow\npatents to restrict development and use of software on general-purpose computers,\nbut in those that do, we wish to avoid the special danger that patents applied to\na free program could make it effectively proprietary. To prevent this, the GPL\nassures that patents cannot be used to render the program non-free.\n\nThe precise\nterms and conditions for copying, distribution and modification follow.\n\nTERMS\nAND CONDITIONS\n\n   0. Definitions.\n\n   \"This License\" refers to version 3 of the\nGNU General Public License.\n\n   \"Copyright\" also means copyright-like laws that\napply to other kinds of works, such as semiconductor masks.\n\n   \"The Program\"\nrefers to any copyrightable work licensed under this License. Each licensee is\naddressed as \"you\". \"Licensees\" and \"recipients\" may be individuals or\norganizations.\n\n   To \"modify\" a work means to copy from or adapt all or part of\nthe work in a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the earlier work\nor a work \"based on\" the earlier work.\n\n   A \"covered work\" means either the\nunmodified Program or a work based on the Program.\n\n   To \"propagate\" a work\nmeans to do anything with it that, without permission, would make you directly or\nsecondarily liable for infringement under applicable copyright law, except\nexecuting it on a computer or modifying a private copy. Propagation includes\ncopying, distribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n   To \"convey\" a work\nmeans any kind of propagation that enables other parties to make or receive\ncopies. Mere interaction with a user through a computer network, with no transfer\nof a copy, is not conveying.\n\n   An interactive user interface displays\n\"Appropriate Legal Notices\" to the extent that it includes a convenient and\nprominently visible feature that (1) displays an appropriate copyright notice,\nand (2) tells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the work under\nthis License, and how to view a copy of this License. If the interface presents a\nlist of user commands or options, such as a menu, a prominent item in the list\nmeets this criterion.\n\n   1. Source Code.\n\n   The \"source code\" for a work means\nthe preferred form of the work for making modifications to it. \"Object code\"\nmeans any non-source form of a work.\n\n   A \"Standard Interface\" means an\ninterface that either is an official standard defined by a recognized standards\nbody, or, in the case of interfaces specified for a particular programming\nlanguage, one that is widely used among developers working in that language.\n\n  \nThe \"System Libraries\" of an executable work include anything, other than the\nwork as a whole, that (a) is included in the normal form of packaging a Major\nComponent, but which is not part of that Major Component, and (b) serves only to\nenable use of the work with that Major Component, or to implement a Standard\nInterface for which an implementation is available to the public in source code\nform. A \"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system (if any) on\nwhich the executable work runs, or a compiler used to produce the work, or an\nobject code interpreter used to run it.\n\n   The \"Corresponding Source\" for a work\nin object code form means all the source code needed to generate, install, and\n(for an executable work) run the object code and to modify the work, including\nscripts to control those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free programs\nwhich are used unmodified in performing those activities but which are not part\nof the work. For example, Corresponding Source includes interface definition\nfiles associated with source files for the work, and the source code for shared\nlibraries and dynamically linked subprograms that the work is specifically\ndesigned to require, such as by intimate data communication or control flow\nbetween those subprograms and other parts of the work.\n\n   The Corresponding\nSource need not include anything that users can regenerate automatically from\nother parts of the Corresponding Source.\n\n   The Corresponding Source for a work\nin source code form is that same work.\n\n   2. Basic Permissions.\n\n   All rights\ngranted under this License are granted for the term of copyright on the Program,\nand are irrevocable provided the stated conditions are met. This License\nexplicitly affirms your unlimited permission to run the unmodified Program. The\noutput from running a covered work is covered by this License only if the output,\ngiven its content, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n   You may\nmake, run and propagate covered works that you do not convey, without conditions\nso long as your license otherwise remains in force. You may convey covered works\nto others for the sole purpose of having them make modifications exclusively for\nyou, or provide you with facilities for running those works, provided that you\ncomply with the terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works for you\nmust do so exclusively on your behalf, under your direction and control, on terms\nthat prohibit them from making any copies of your copyrighted material outside\ntheir relationship with you.\n\n   Conveying under any other circumstances is\npermitted solely under the conditions stated below. Sublicensing is not allowed;\nsection 10 makes it unnecessary.\n\n   3. Protecting Users' Legal Rights From\nAnti-Circumvention Law.\n\n   No covered work shall be deemed part of an effective\ntechnological measure under any applicable law fulfilling obligations under\narticle 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar\nlaws prohibiting or restricting circumvention of such measures.\n\n   When you\nconvey a covered work, you waive any legal power to forbid circumvention of\ntechnological measures to the extent such circumvention is effected by exercising\nrights under this License with respect to the covered work, and you disclaim any\nintention to limit operation or modification of the work as a means of enforcing,\nagainst the work's users, your or third parties' legal rights to forbid\ncircumvention of technological measures.\n\n   4. Conveying Verbatim Copies.\n\n  \nYou may convey verbatim copies of the Program's source code as you receive it, in\nany medium, provided that you conspicuously and appropriately publish on each\ncopy an appropriate copyright notice; keep intact all notices stating that this\nLicense and any non-permissive terms added in accord with section 7 apply to the\ncode; keep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n   You may charge any\nprice or no price for each copy that you convey, and you may offer support or\nwarranty protection for a fee.\n\n   5. Conveying Modified Source Versions.\n\n   You\nmay convey a work based on the Program, or the modifications to produce it from\nthe Program, in the form of source code under the terms of section 4, provided\nthat you also meet all of these conditions:\n\n      a) The work must carry\nprominent notices stating that you modified it, and giving a relevant date.\n\n    \nb) The work must carry prominent notices stating that it is released under this\nLicense and any conditions added under section 7. This requirement modifies the\nrequirement in section 4 to \"keep intact all notices\".\n\n      c) You must license\nthe entire work, as a whole, under this License to anyone who comes into\npossession of a copy. This License will therefore apply, along with any\napplicable section 7 additional terms, to the whole of the work, and all its\nparts, regardless of how they are packaged. This License gives no permission to\nlicense the work in any other way, but it does not invalidate such permission if\nyou have separately received it.\n\n      d) If the work has interactive user\ninterfaces, each must display Appropriate Legal Notices; however, if the Program\nhas interactive interfaces that do not display Appropriate Legal Notices, your\nwork need not make them do so.\n\n   A compilation of a covered work with other\nseparate and independent works, which are not by their nature extensions of the\ncovered work, and which are not combined with it such as to form a larger\nprogram, in or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not used to limit\nthe access or legal rights of the compilation's users beyond what the individual\nworks permit. Inclusion of a covered work in an aggregate does not cause this\nLicense to apply to the other parts of the aggregate.\n\n   6. Conveying Non-Source\nForms.\n\n   You may convey a covered work in object code form under the terms of\nsections 4 and 5, provided that you also convey the machine-readable\nCorresponding Source under the terms of this License, in one of these ways:\n\n    \na) Convey the object code in, or embodied in, a physical product (including a\nphysical distribution medium), accompanied by the Corresponding Source fixed on a\ndurable physical medium customarily used for software interchange.\n\n      b)\nConvey the object code in, or embodied in, a physical product (including a\nphysical distribution medium), accompanied by a written offer, valid for at least\nthree years and valid for as long as you offer spare parts or customer support\nfor that product model, to give anyone who possesses the object code either (1) a\ncopy of the Corresponding Source for all the software in the product that is\ncovered by this License, on a durable physical medium customarily used for\nsoftware interchange, for a price no more than your reasonable cost of physically\nperforming this conveying of source, or (2) access to copy the Corresponding\nSource from a network server at no charge.\n\n      c) Convey individual copies of\nthe object code with a copy of the written offer to provide the Corresponding\nSource. This alternative is allowed only occasionally and noncommercially, and\nonly if you received the object code with such an offer, in accord with\nsubsection 6b.\n\n      d) Convey the object code by offering access from a\ndesignated place (gratis or for a charge), and offer equivalent access to the\nCorresponding Source in the same way through the same place at no further charge.\nYou need not require recipients to copy the Corresponding Source along with the\nobject code. If the place to copy the object code is a network server, the\nCorresponding Source may be on a different server (operated by you or a third\nparty) that supports equivalent copying facilities, provided you maintain clear\ndirections next to the object code saying where to find the Corresponding Source.\nRegardless of what server hosts the Corresponding Source, you remain obligated to\nensure that it is available for as long as needed to satisfy these\nrequirements.\n\n      e) Convey the object code using peer-to-peer transmission,\nprovided you inform other peers where the object code and Corresponding Source of\nthe work are being offered to the general public at no charge under subsection\n6d.\n\n   A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be included in\nconveying the object code work.\n\n   A \"User Product\" is either (1) a \"consumer\nproduct\", which means any tangible personal property which is normally used for\npersonal, family, or household purposes, or (2) anything designed or sold for\nincorporation into a dwelling. In determining whether a product is a consumer\nproduct, doubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a typical or\ncommon use of that class of product, regardless of the status of the particular\nuser or of the way in which the particular user actually uses, or expects or is\nexpected to use, the product. A product is a consumer product regardless of\nwhether the product has substantial commercial, industrial or non-consumer uses,\nunless such uses represent the only significant mode of use of the product.\n\n  \n\"Installation Information\" for a User Product means any methods, procedures,\nauthorization keys, or other information required to install and execute modified\nversions of a covered work in that User Product from a modified version of its\nCorresponding Source. The information must suffice to ensure that the continued\nfunctioning of the modified object code is in no case prevented or interfered\nwith solely because modification has been made.\n\n   If you convey an object code\nwork under this section in, or with, or specifically for use in, a User Product,\nand the conveying occurs as part of a transaction in which the right of\npossession and use of the User Product is transferred to the recipient in\nperpetuity or for a fixed term (regardless of how the transaction is\ncharacterized), the Corresponding Source conveyed under this section must be\naccompanied by the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install modified object\ncode on the User Product (for example, the work has been installed in ROM).\n\n  \nThe requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates for a\nwork that has been modified or installed by the recipient, or for the User\nProduct in which it has been modified or installed. Access to a network may be\ndenied when the modification itself materially and adversely affects the\noperation of the network or violates the rules and protocols for communication\nacross the network.\n\n   Corresponding Source conveyed, and Installation\nInformation provided, in accord with this section must be in a format that is\npublicly documented (and with an implementation available to the public in source\ncode form), and must require no special password or key for unpacking, reading or\ncopying.\n\n   7. Additional Terms.\n\n   \"Additional permissions\" are terms that\nsupplement the terms of this License by making exceptions from one or more of its\nconditions. Additional permissions that are applicable to the entire Program\nshall be treated as though they were included in this License, to the extent that\nthey are valid under applicable law. If additional permissions apply only to part\nof the Program, that part may be used separately under those permissions, but the\nentire Program remains governed by this License without regard to the additional\npermissions.\n\n   When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of it.\n(Additional permissions may be written to require their own removal in certain\ncases when you modify the work.) You may place additional permissions on\nmaterial, added by you to a covered work, for which you have or can give\nappropriate copyright permission.\n\n   Notwithstanding any other provision of this\nLicense, for material you add to a covered work, you may (if authorized by the\ncopyright holders of that material) supplement the terms of this License with\nterms:\n\n      a) Disclaiming warranty or limiting liability differently from the\nterms of sections 15 and 16 of this License; or\n\n      b) Requiring preservation\nof specified reasonable legal notices or author attributions in that material or\nin the Appropriate Legal Notices displayed by works containing it; or\n\n      c)\nProhibiting misrepresentation of the origin of that material, or requiring that\nmodified versions of such material be marked in reasonable ways as different from\nthe original version; or\n\n      d) Limiting the use for publicity purposes of\nnames of licensors or authors of the material; or\n\n      e) Declining to grant\nrights under trademark law for use of some trade names, trademarks, or service\nmarks; or\n\n      f) Requiring indemnification of licensors and authors of that\nmaterial by anyone who conveys the material (or modified versions of it) with\ncontractual assumptions of liability to the recipient, for any liability that\nthese contractual assumptions directly impose on those licensors and authors.\n\n  \nAll other non-permissive additional terms are considered \"further restrictions\"\nwithin the meaning of section 10. If the Program as you received it, or any part\nof it, contains a notice stating that it is governed by this License along with a\nterm that is a further restriction, you may remove that term. If a license\ndocument contains a further restriction but permits relicensing or conveying\nunder this License, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does not survive\nsuch relicensing or conveying.\n\n   If you add terms to a covered work in accord\nwith this section, you must place, in the relevant source files, a statement of\nthe additional terms that apply to those files, or a notice indicating where to\nfind the applicable terms.\n\n   Additional terms, permissive or non-permissive,\nmay be stated in the form of a separately written license, or stated as\nexceptions; the above requirements apply either way.\n\n   8. Termination.\n\n   You\nmay not propagate or modify a covered work except as expressly provided under\nthis License. Any attempt otherwise to propagate or modify it is void, and will\nautomatically terminate your rights under this License (including any patent\nlicenses granted under the third paragraph of section 11).\n\n   However, if you\ncease all violation of this License, then your license from a particular\ncopyright holder is reinstated (a) provisionally, unless and until the copyright\nholder explicitly and finally terminates your license, and (b) permanently, if\nthe copyright holder fails to notify you of the violation by some reasonable\nmeans prior to 60 days after the cessation.\n\n   Moreover, your license from a\nparticular copyright holder is reinstated permanently if the copyright holder\nnotifies you of the violation by some reasonable means, this is the first time\nyou have received notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after your receipt\nof the notice.\n\n   Termination of your rights under this section does not\nterminate the licenses of parties who have received copies or rights from you\nunder this License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same material\nunder section 10.\n\n   9. Acceptance Not Required for Having Copies.\n\n   You are\nnot required to accept this License in order to receive or run a copy of the\nProgram. Ancillary propagation of a covered work occurring solely as a\nconsequence of using peer-to-peer transmission to receive a copy likewise does\nnot require acceptance. However, nothing other than this License grants you\npermission to propagate or modify any covered work. These actions infringe\ncopyright if you do not accept this License. Therefore, by modifying or\npropagating a covered work, you indicate your acceptance of this License to do\nso.\n\n   10. Automatic Licensing of Downstream Recipients.\n\n   Each time you\nconvey a covered work, the recipient automatically receives a license from the\noriginal licensors, to run, modify and propagate that work, subject to this\nLicense. You are not responsible for enforcing compliance by third parties with\nthis License.\n\n   An \"entity transaction\" is a transaction transferring control\nof an organization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered work results\nfrom an entity transaction, each party to that transaction who receives a copy of\nthe work also receives whatever licenses to the work the party's predecessor in\ninterest had or could give under the previous paragraph, plus a right to\npossession of the Corresponding Source of the work from the predecessor in\ninterest, if the predecessor has it or can get it with reasonable efforts.\n\n  \nYou may not impose any further restrictions on the exercise of the rights granted\nor affirmed under this License. For example, you may not impose a license fee,\nroyalty, or other charge for exercise of rights granted under this License, and\nyou may not initiate litigation (including a cross-claim or counterclaim in a\nlawsuit) alleging that any patent claim is infringed by making, using, selling,\noffering for sale, or importing the Program or any portion of it.\n\n   11.\nPatents.\n\n   A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The work thus\nlicensed is called the contributor's \"contributor version\".\n\n   A contributor's\n\"essential patent claims\" are all patent claims owned or controlled by the\ncontributor, whether already acquired or hereafter acquired, that would be\ninfringed by some manner, permitted by this License, of making, using, or selling\nits contributor version, but do not include claims that would be infringed only\nas a consequence of further modification of the contributor version. For purposes\nof this definition, \"control\" includes the right to grant patent sublicenses in a\nmanner consistent with the requirements of this License.\n\n   Each contributor\ngrants you a non-exclusive, worldwide, royalty-free patent license under the\ncontributor's essential patent claims, to make, use, sell, offer for sale, import\nand otherwise run, modify and propagate the contents of its contributor\nversion.\n\n   In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent (such as an\nexpress permission to practice a patent or covenant not to sue for patent\ninfringement). To \"grant\" such a patent license to a party means to make such an\nagreement or commitment not to enforce a patent against the party.\n\n   If you\nconvey a covered work, knowingly relying on a patent license, and the\nCorresponding Source of the work is not available for anyone to copy, free of\ncharge and under the terms of this License, through a publicly available network\nserver or other readily accessible means, then you must either (1) cause the\nCorresponding Source to be so available, or (2) arrange to deprive yourself of\nthe benefit of the patent license for this particular work, or (3) arrange, in a\nmanner consistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have actual\nknowledge that, but for the patent license, your conveying the covered work in a\ncountry, or your recipient's use of the covered work in a country, would infringe\none or more identifiable patents in that country that you have reason to believe\nare valid.\n\n   If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a covered work,\nand grant a patent license to some of the parties receiving the covered work\nauthorizing them to use, propagate, modify or convey a specific copy of the\ncovered work, then the patent license you grant is automatically extended to all\nrecipients of the covered work and works based on it.\n\n   A patent license is\n\"discriminatory\" if it does not include within the scope of its coverage,\nprohibits the exercise of, or is conditioned on the non-exercise of one or more\nof the rights that are specifically granted under this License. You may not\nconvey a covered work if you are a party to an arrangement with a third party\nthat is in the business of distributing software, under which you make payment to\nthe third party based on the extent of your activity of conveying the work, and\nunder which the third party grants, to any of the parties who would receive the\ncovered work from you, a discriminatory patent license (a) in connection with\ncopies of the covered work conveyed by you (or copies made from those copies), or\n(b) primarily for and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement, or that\npatent license was granted, prior to 28 March 2007.\n\n   Nothing in this License\nshall be construed as excluding or limiting any implied license or other defenses\nto infringement that may otherwise be available to you under applicable patent\nlaw.\n\n   12. No Surrender of Others' Freedom.\n\n   If conditions are imposed on\nyou (whether by court order, agreement or otherwise) that contradict the\nconditions of this License, they do not excuse you from the conditions of this\nLicense. If you cannot convey a covered work so as to satisfy simultaneously your\nobligations under this License and any other pertinent obligations, then as a\nconsequence you may not convey it at all. For example, if you agree to terms that\nobligate you to collect a royalty for further conveying from those to whom you\nconvey the Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n   13. Use with\nthe GNU Affero General Public License.\n\n   Notwithstanding any other provision of\nthis License, you have permission to link or combine any covered work with a work\nlicensed under version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work. The terms of this License will\ncontinue to apply to the part which is the covered work, but the special\nrequirements of the GNU Affero General Public License, section 13, concerning\ninteraction through a network will apply to the combination as such.\n\n   14.\nRevised Versions of this License.\n\n   The Free Software Foundation may publish\nrevised and/or new versions of the GNU General Public License from time to time.\nSuch new versions will be similar in spirit to the present version, but may\ndiffer in detail to address new problems or concerns.\n\n   Each version is given a\ndistinguishing version number. If the Program specifies that a certain numbered\nversion of the GNU General Public License \"or any later version\" applies to it,\nyou have the option of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software Foundation. If the\nProgram does not specify a version number of the GNU General Public License, you\nmay choose any version ever published by the Free Software Foundation.\n\n   If the\nProgram specifies that a proxy can decide which future versions of the GNU\nGeneral Public License can be used, that proxy's public statement of acceptance\nof a version permanently authorizes you to choose that version for the Program.\n\n\nLater license versions may give you additional or different permissions. However,\nno additional obligations are imposed on any author or copyright holder as a\nresult of your choosing to follow a later version.\n\n   15. Disclaimer of\nWarranty.\n\n   THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS\nAND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND,\nEITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE\nRISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR\nOR CORRECTION.\n\n   16. Limitation of Liability.\n\n   IN NO EVENT UNLESS REQUIRED\nBY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER\nPARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO\nYOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL\nDAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT\nLIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY\nOF SUCH DAMAGES.\n\n   17. Interpretation of Sections 15 and 16.\n\nIf the disclaimer\nof warranty and limitation of liability provided above cannot be given local\nlegal effect according to their terms, reviewing courts shall apply local law\nthat most closely approximates an absolute waiver of all civil liability in\nconnection with the Program, unless a warranty or assumption of liability\naccompanies a copy of the Program in return for a fee. END OF TERMS AND\nCONDITIONS\n\nHow to Apply These Terms to Your New Programs\n\nIf you develop a new\nprogram, and you want it to be of the greatest possible use to the public, the\nbest way to achieve this is to make it free software which everyone can\nredistribute and change under these terms.\n\nTo do so, attach the following\nnotices to the program. It is safest to attach them to the start of each source\nfile to most effectively state the exclusion of warranty; and each file should\nhave at least the \"copyright\" line and a pointer to where the full notice is\nfound.\n\nPerform telescope.nvim functions in a selected directory\n\nCopyright (C) 2022 princejoogie\n\nThis program is free software: you\ncan redistribute it and/or modify it under the terms of the GNU General Public\nLicense as published by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in\nthe hope that it will be useful, but WITHOUT ANY WARRANTY; without even the\nimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of\nthe GNU General Public License along with this program. If not, see\n<https://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by\nelectronic and paper mail.\n\nIf the program does terminal interaction, make it\noutput a short notice like this when it starts in an interactive mode:\n\ndir-telescope.nvim\nCopyright (C) 2022 princejoogie\n\nThis program comes with ABSOLUTELY NO\nWARRANTY; for details type `show w'.\n\nThis is free software, and you are welcome\nto redistribute it under certain conditions; type `show c' for details.\n\nThe\nhypothetical commands `show w' and `show c' should show the appropriate parts of\nthe General Public License. Of course, your program's commands might be\ndifferent; for a GUI interface, you would use an \"about box\".\n\nYou should also\nget your employer (if you work as a programmer) or school, if any, to sign a\n\"copyright disclaimer\" for the program, if necessary. For more information on\nthis, and how to apply and follow the GNU GPL, see\n<https://www.gnu.org/licenses/>.\n\nThe GNU General Public License does not permit\nincorporating your program into proprietary programs. If your program is a\nsubroutine library, you may consider it more useful to permit linking proprietary\napplications with the library. If this is what you want to do, use the GNU Lesser\nGeneral Public License instead of this License. But first, please read\n<https://www.gnu.org/ licenses /why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "# dir-telescope.nvim\n\nPerform [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) functions in selected directories\n\nhttps://user-images.githubusercontent.com/47204120/196644189-ceb442bd-9528-4069-89dc-511ab1c98788.mp4\n\n## Installation\n\n- [packer.nvim](https://github.com/wbthomason/packer.nvim)\n\n```lua\nuse({\n  \"princejoogie/dir-telescope.nvim\",\n  -- telescope.nvim is a required dependency\n  requires = {\"nvim-telescope/telescope.nvim\"},\n  config = function()\n    require(\"dir-telescope\").setup({\n      -- these are the default options set\n      hidden = true,\n      no_ignore = false,\n      show_preview = true,\n      follow_symlinks = false,\n    })\n  end,\n})\n```\n\n## Usage\n\n1. `dir-telescope` can be used in two ways, either as a telescope extension or as user commands.\n2. the commands will open a telescope picker with the list of directories in your current working directory.\n3. you can select a directory by hitting `Enter` or select multiple directories to filter with `Tab`\n4. it will then perform either a `live_grep` or `find_files` on your selected directories\n5. `(tip)`: `<C-q>` will save your queries in a quickfix list. this is the default binding for `telescope.nvim`\n\n### With Telescope extensions\n\n```lua\nrequire(\"telescope\").load_extension(\"dir\")\n```\n\nTo use the extension simply run `:Telescope dir live_grep` or `:Telescope dir find_files`. These will respect the options you have set during configuration.\n\n#### Setting keymaps for telescope extensions\n\n```lua\nvim.keymap.set(\"n\", \"<leader>fd\", \"<cmd>Telescope dir live_grep<CR>\", { noremap = true, silent = true })\nvim.keymap.set(\"n\", \"<leader>pd\", \"<cmd>Telescope dir find_files<CR>\", { noremap = true, silent = true })\n```\n\n#### Programatically call the extension\n\n```lua\nrequire(\"telescope\").extensions.dir.live_grep()\nrequire(\"telescope\").extensions.dir.find_files()\n```\n\n### With User commands\n\n`dir-telescope` creates two user commands `:GrepInDirectory` and `:FileInDirectory` which you can map to any liking you want.\n\n#### Setting keymaps for user commands\n\n```lua\nvim.keymap.set(\"n\", \"<leader>fd\", \"<cmd>GrepInDirectory<CR>\", { noremap = true, silent = true })\nvim.keymap.set(\"n\", \"<leader>pd\", \"<cmd>FileInDirectory<CR>\", { noremap = true, silent = true })\n```\n\n## Contributing\n\nIntructions for contributing is documented in th [CONTRIBUTING.md](./CONTRIBUTING.md) guide\n\n---\n\nMade with ☕ by Prince Carlo Juguilon\n"
  },
  {
    "path": "lua/.luarc.json",
    "content": "{\n    \"diagnostics.globals\": [\n        \"vim\"\n    ]\n}"
  },
  {
    "path": "lua/dir-telescope/features/find-in-dir.lua",
    "content": "local builtin = require(\"telescope.builtin\")\nlocal get_dirs = require(\"dir-telescope.util\").get_dirs\n\nlocal M = {}\n\nM.FileInDirectory = function(opts)\n\tget_dirs(opts, builtin.find_files)\nend\n\nreturn M\n"
  },
  {
    "path": "lua/dir-telescope/features/grep-in-dir.lua",
    "content": "local get_dirs = require(\"dir-telescope.util\").get_dirs\n\nlocal M = {}\n\nM.GrepInDirectory = function(opts)\n\tget_dirs(opts, opts.live_grep)\nend\n\nreturn M\n"
  },
  {
    "path": "lua/dir-telescope/init.lua",
    "content": "local find_in_dir = require(\"dir-telescope.features.find-in-dir\").FileInDirectory\nlocal grep_in_dir = require(\"dir-telescope.features.grep-in-dir\").GrepInDirectory\nlocal settings = require(\"dir-telescope.settings\")\n\nlocal M = {}\n\n-- @param opts: table\n-- @param opts.hidden: boolean\n-- @param opts.no_ignore: boolean\n-- @param opts.show_preview: boolean\n-- @param opts.follow_symlinks: boolean\n-- @param opts.live_grep: function\n-- @param opts.debug : boolean\nM.setup = function(opts)\n\tif opts then\n\t\tsettings.set(opts)\n\tend\n\n\tM.create_commands(settings.current)\nend\n\nM.create_commands = function(opts)\n\tvim.api.nvim_create_user_command(\"GrepInDirectory\", function()\n\t\tgrep_in_dir(opts)\n\tend, {\n\t\tdesc = \"Live grep in selected directory\",\n\t})\n\n\tvim.api.nvim_create_user_command(\"FileInDirectory\", function()\n\t\tfind_in_dir(opts)\n\tend, {\n\t\tdesc = \"Find files in selected directory\",\n\t})\nend\n\nreturn M\n"
  },
  {
    "path": "lua/dir-telescope/settings.lua",
    "content": "local builtin = require(\"telescope.builtin\")\nlocal M = {}\n\nlocal DEFAULT_SETTINGS = {\n\thidden = true,\n\tdebug = false,\n\tno_ignore = false,\n\tshow_preview = true,\n\tfollow_symlinks = false,\n\tlive_grep = builtin.live_grep,\n}\n\nM._DEFAULT_SETTINGS = DEFAULT_SETTINGS\nM.current = M._DEFAULT_SETTINGS\n\nM.set = function(opts)\n\tM.current = vim.tbl_deep_extend(\"force\", M.current, opts)\n\tvim.validate({\n\t\thidden = { M.current.hidden, \"boolean\" },\n\t\tdebug = { M.current.debug, \"boolean\" },\n\t\tno_ignore = { M.current.no_ignore, \"boolean\" },\n\t\tshow_preview = { M.current.show_preview, \"boolean\" },\n\t\tfollow_symlinks = { M.current.follow_symlinks, \"boolean\" },\n\t})\nend\n\nreturn M\n"
  },
  {
    "path": "lua/dir-telescope/util/init.lua",
    "content": "local action_set = require(\"telescope.actions.set\")\nlocal action_state = require(\"telescope.actions.state\")\nlocal actions = require(\"telescope.actions\")\nlocal conf = require(\"telescope.config\").values\nlocal finders = require(\"telescope.finders\")\nlocal make_entry = require(\"telescope.make_entry\")\nlocal pickers = require(\"telescope.pickers\")\nlocal time = require(\"dir-telescope.util.time\")\n\nlocal flatten = vim.tbl_flatten\n\nlocal M = {}\n\nM.get_dirs = function(opts, fn)\n\tif opts.debug then\n\t\ttime.time_start(\"get_dirs\")\n\tend\n\n\tlocal find_command = (function()\n\t\tif opts.find_command then\n\t\t\tif type(opts.find_command) == \"function\" then\n\t\t\t\treturn opts.find_command(opts)\n\t\t\tend\n\t\t\treturn opts.find_command\n\t\telseif 1 == vim.fn.executable(\"fd\") then\n\t\t\treturn { \"fd\", \"--type\", \"d\", \"--color\", \"never\" }\n\t\telseif 1 == vim.fn.executable(\"fdfind\") then\n\t\t\treturn { \"fdfind\", \"--type\", \"d\", \"--color\", \"never\" }\n\t\telseif 1 == vim.fn.executable(\"find\") and vim.fn.has(\"win32\") == 0 then\n\t\t\treturn { \"find\", \".\", \"-type\", \"d\" }\n\t\tend\n\tend)()\n\n\tif not find_command then\n\t\tvim.notify(\"dir-telescope\", {\n\t\t\tmsg = \"You need to install either find, fd\",\n\t\t\tlevel = vim.log.levels.ERROR,\n\t\t})\n\t\treturn\n\tend\n\n\tlocal command = find_command[1]\n\tlocal hidden = opts.hidden\n\tlocal no_ignore = opts.no_ignore\n\tlocal follow_symlinks = opts.follow_symlinks\n\n\tif opts.respect_gitignore then\n\t\tvim.notify(\"dir-telescope: respect_gitignore is deprecated, use no_ignore instead\", vim.log.levels.ERROR)\n\tend\n\n\tif command == \"fd\" or command == \"fdfind\" or command == \"rg\" then\n\t\tif hidden then\n\t\t\tfind_command[#find_command + 1] = \"--hidden\"\n\t\tend\n\t\tif no_ignore then\n\t\t\tfind_command[#find_command + 1] = \"--no-ignore\"\n\t\tend\n\t\tif follow_symlinks then\n\t\t\tfind_command[#find_command + 1] = \"--follow\"\n\t\tend\n\telseif command == \"find\" then\n\t\tif not hidden then\n\t\t\ttable.insert(find_command, { \"-not\", \"-path\", \"*/.*\" })\n\t\t\tfind_command = flatten(find_command)\n\t\tend\n\t\tif no_ignore ~= nil then\n\t\t\tvim.notify(\n\t\t\t\t\"The `no_ignore` key is not available for the `find` command in `get_dirs`.\",\n\t\t\t\tvim.log.levels.WARN\n\t\t\t)\n\t\tend\n\t\tif follow_symlinks then\n\t\t\tfind_command[#find_command + 1] = \"-follow\"\n\t\tend\n\telse\n\t\tvim.notify(\"dir-telescope: You need to install either find or fd/fdfind\", vim.log.levels.ERROR)\n\tend\n\n\tlocal getPreviewer = function()\n\t\tif opts.show_preview then\n\t\t\treturn conf.file_previewer(opts)\n\t\telse\n\t\t\treturn nil\n\t\tend\n\tend\n\n\tvim.fn.jobstart(find_command, {\n\t\tstdout_buffered = true,\n\t\ton_stdout = function(_, _data)\n\t\t\tlocal data = vim.tbl_filter(function(str)\n\t\t\t\treturn not str:match(\"^%.git\")\n\t\t\tend, _data)\n\n\t\t\tif data then\n\t\t\t\tpickers\n\t\t\t\t\t\t.new(opts, {\n\t\t\t\t\t\t\tprompt_title = \"Select a Directory\",\n\t\t\t\t\t\t\tfinder = finders.new_table({ results = data, entry_maker = make_entry.gen_from_file(opts) }),\n\t\t\t\t\t\t\tpreviewer = getPreviewer(),\n\t\t\t\t\t\t\tsorter = conf.file_sorter(opts),\n\t\t\t\t\t\t\tattach_mappings = function(prompt_bufnr)\n\t\t\t\t\t\t\t\taction_set.select:replace(function()\n\t\t\t\t\t\t\t\t\tlocal current_picker = action_state.get_current_picker(prompt_bufnr)\n\t\t\t\t\t\t\t\t\tlocal dirs = {}\n\t\t\t\t\t\t\t\t\tlocal selections = current_picker:get_multi_selection()\n\t\t\t\t\t\t\t\t\tif vim.tbl_isempty(selections) then\n\t\t\t\t\t\t\t\t\t\ttable.insert(dirs, action_state.get_selected_entry().value)\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tfor _, selection in ipairs(selections) do\n\t\t\t\t\t\t\t\t\t\t\ttable.insert(dirs, selection.value)\n\t\t\t\t\t\t\t\t\t\tend\n\t\t\t\t\t\t\t\t\tend\n\t\t\t\t\t\t\t\t\tactions._close(prompt_bufnr, current_picker.initial_mode == \"insert\")\n\t\t\t\t\t\t\t\t\tfn({ search_dirs = dirs })\n\t\t\t\t\t\t\t\tend)\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t:find()\n\n\t\t\t\tif opts.debug then\n\t\t\t\t\tprint(\"get_dirs took \" .. time.time_end(\"get_dirs\") .. \" seconds\")\n\t\t\t\tend\n\t\t\telse\n\t\t\t\tvim.notify(\"No directories found\", vim.log.levels.ERROR)\n\t\t\tend\n\t\tend,\n\t})\nend\n\nreturn M\n"
  },
  {
    "path": "lua/dir-telescope/util/time.lua",
    "content": "local M = {}\n\nlocal table = {}\n\nM.time_start = function(name)\n\ttable[name] = os.clock()\nend\n\nM.time_end = function(name)\n\tif table[name] then\n\t\tlocal time = os.clock() - table[name]\n\t\ttable[name] = nil\n\t\treturn time\n\telse\n\t\treturn nil\n\tend\nend\n\nreturn M\n"
  },
  {
    "path": "lua/telescope/_extensions/dir.lua",
    "content": "local find_in_dir = require(\"dir-telescope.features.find-in-dir\").FileInDirectory\nlocal grep_in_dir = require(\"dir-telescope.features.grep-in-dir\").GrepInDirectory\nlocal settings = require(\"dir-telescope.settings\")\n\nreturn require(\"telescope\").register_extension({\n\texports = {\n\t\tlive_grep = function()\n\t\t\tgrep_in_dir(settings.current)\n\t\tend,\n\t\tfind_files = function()\n\t\t\tfind_in_dir(settings.current)\n\t\tend,\n\t},\n})\n"
  }
]