{"action":"created","issue":{"url":"https://api.github.com/repos/fish-shell/fish-shell/issues/4191","repository_url":"https://api.github.com/repos/fish-shell/fish-shell","labels_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/4191/labels{/name}","comments_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/4191/comments","events_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/4191/events","html_url":"https://github.com/fish-shell/fish-shell/issues/4191","id":240982508,"number":4191,"title":"Rename `__fish_not_contain_opt` to `__fish_not_contains_opt`, with the 3rd person 's'","user":{"login":"PenegalECI","id":5442889,"avatar_url":"https://avatars2.githubusercontent.com/u/5442889?v=3","gravatar_id":"","url":"https://api.github.com/users/PenegalECI","html_url":"https://github.com/PenegalECI","followers_url":"https://api.github.com/users/PenegalECI/followers","following_url":"https://api.github.com/users/PenegalECI/following{/other_user}","gists_url":"https://api.github.com/users/PenegalECI/gists{/gist_id}","starred_url":"https://api.github.com/users/PenegalECI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PenegalECI/subscriptions","organizations_url":"https://api.github.com/users/PenegalECI/orgs","repos_url":"https://api.github.com/users/PenegalECI/repos","events_url":"https://api.github.com/users/PenegalECI/events{/privacy}","received_events_url":"https://api.github.com/users/PenegalECI/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-07-06T14:48:59Z","updated_at":"2017-07-06T16:00:47Z","closed_at":null,"body":"Hello, there.\r\n\r\nI'm using fish 2.4.0, and working on completions for `mdadm`, which pull I will eventually request. I'm puzzled with the builtins for options tests: there is `__fish_contains_opt`, to test if an option has already been selected, and `__fish_not_contain_opt`, to test if an option has not been already tested. What puzzles me here is the difference between these names: the first one has the 3rd-person 's', whereas the second one does not have it. Once you got it, you deal with it easily, but it looks like a useless idiosyncrasy; `__fish_not_contain_opt` should be renamed to `__fish_not_contains_opt`, or does the 's' disappeared with the implied 'does'?\r\n\r\nRegards."},"comment":{"url":"https://api.github.com/repos/fish-shell/fish-shell/issues/comments/313440504","html_url":"https://github.com/fish-shell/fish-shell/issues/4191#issuecomment-313440504","issue_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/4191","id":313440504,"user":{"login":"krader1961","id":7545917,"avatar_url":"https://avatars1.githubusercontent.com/u/7545917?v=3","gravatar_id":"","url":"https://api.github.com/users/krader1961","html_url":"https://github.com/krader1961","followers_url":"https://api.github.com/users/krader1961/followers","following_url":"https://api.github.com/users/krader1961/following{/other_user}","gists_url":"https://api.github.com/users/krader1961/gists{/gist_id}","starred_url":"https://api.github.com/users/krader1961/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krader1961/subscriptions","organizations_url":"https://api.github.com/users/krader1961/orgs","repos_url":"https://api.github.com/users/krader1961/repos","events_url":"https://api.github.com/users/krader1961/events{/privacy}","received_events_url":"https://api.github.com/users/krader1961/received_events","type":"User","site_admin":false},"created_at":"2017-07-06T16:00:47Z","updated_at":"2017-07-06T16:00:47Z","body":"> ... or does the 's' disappeared with the implied 'does'?\r\n\r\nYes, and that is probably why the author used the singular. English is weird. And I say that as a native speaker of 56 years.\r\n\r\nI don't think there is any point in just adding or removing the `s` (depending on which one we modify). But since we're going to do a major release this might be a good time to change something more significant that has bugged me from day one. Too many functions and vars begin with a double-underscore implying they are a private implementation detail that are in fact public and not subject to arbitrary change. Fish 3.0 would be an ideal time to fix this confusing pattern. And while doing so we could introduce better, or at least more consistent, names for things like the functions in the original comment of this issue. Obviously we'll want to retain the old names for the foreseeable future but they would be explicitly marked as deprecated with an explicit planned removal date.\r\n\r\nIf we do this what should the new naming pattern look like? My preference is either a single leading underscore or no leading underscore for anything with a stable interface that users are free to use (if its a function name) or set (if its a var). Such names would be documented. Any function or var name that begins with two or more leading underscores is an implementation detail that should be treated as a black box. Using a dunderscore function or var means your code can be broken in a minor release."}}
{"actor":{"display_login":"krader1961"}}