12 ms·
Show HN: TabNine, an autocompleter for all languages
- fernandotakai 8y agohow would compare that to something like YouCompleteMe?
- claymav 8y agoYouCompleteMe will know the specifics of the language you are in so it will be much better at simple syntax, this will be able to learn how you generally do things and repeated patterns, which usually also will get a good bit of the syntax down.
- jacob-jackson 8y agoYouCompleteMe will be better than TabNine for API exploration. TabNine will be more reliable (it will work correctly with malformed, ill-typed, or half-written code) and it can find patterns in your code, like you can see in the pictures on the website.
- caymanjim 8y agoHopefully it'd be faster. YouCompleteMe is painfully slow, even after some effort to tweak it.
- asdkhadsj 8y agoThis is really, really cool and I thank you for this! I'm seriously hyped, I just hope it works as well as it claims. edit: Can you provide some help/FAQ on using it from the CLI? I'd like to add support for my own editor, but I'm not yet sure if that's possible. Thanks!
- jacob-jackson 8y agoThanks for the kind words! I'll write a guide within the next couple of days on how to write a client.
- ashwinaj 8y agoAwesome plugin Jacob. I have a question about the full version, is it per editor? Eg., I use Sublime Text most of the time, but occassionally vim, do I need to buy 2 licenses? Also are these licenses transferrable between machines (work vs home)?
- ivan4th 8y agoCool technology. Yet, no Emacs support yet... oops :(
- asdkhadsj 8y agoWouldn't we be able to add Emacs support? That's my hope, as my editor isn't on that list either. I'm checking out the install now.
- jacob-jackson 8y agoSorry :( Emacs support is coming within a couple months. You can sign up at https://tabnine.com/install https://tabnine.com/install to be notified when it's released.
- pimeys 8y agoI'll buy your tool immediately when the emacs support lands. Subscribed already to the email list.
- guachesuedehack 8y agoWhy is there a premium version ?
- drewbailey 8y agoTo allow the person(s) who implemented it to get paid for their efforts and hard work?
- asdkhadsj 8y agoIt's also a very competitive price. $29 is excellent for a piece of software that helps my day to day. It's really a sweet spot between very reasonable, and a bit pricey. I'm so happy about this project, and hope it works well (I'll be trying it tonight after work)
- vorticalbox 8y agoI'm going to give it a try tomorrow at work.
- king_phil 8y agoNo craftsman of any kind would whine about a (good) tool that costs $29 and makes him more productive. I do not see why a progrommer should do that.
- asdkhadsj 8y agoOn that same note, I wish we were more willing to pay for our tools as a community. If we were, I think more neat and productive projects like this might exist. Yet, developers seem to be historically cheap, and our love for open source (which I do love) seems to be mixed in with our willingness to spend money on our tooling.
- superasn 8y agoI was hoping there was a version that worked with Webstorm or Phpstorm. I can't wait to try this out.
- itdaniher 8y ago> your software will automatically update to the full released version at no additional charge. So, give your proprietary software both network access and access to all my source code? I have very few complaints about the Jedi autocomplete library, which is neither proprietary nor requires network access. I welcome innovation in dev tools, but I wish you had found a monetization strategy that didn't require us to trust you so completely.
- jacob-jackson 8y agoYour concerns are understandable. It is about as risky as installing an editor plugin which updates automatically. The private keys used to sign releases are kept offline and would not be available to an attacker even if they compromised my online accounts. Finally, TabNine will work correctly if you deny it network access (say, by blacklisting update.tabnine.com).
- asdkhadsj 8y agoWait, is the auto-update all that's needed for network? I assumed it was license validation or something. If it's just updating, couldn't you provide a different method of updating like manual update checking, and then peoples concerns would be solved?
- itdaniher 8y agoNo, it does use the network to validate registration keys. Presumably this means a TLS connection per invocation of the binary. > TabNine makes web requests only for the purposes of downloading updates and validating registration keys. from https://tabnine.com/faq https://tabnine.com/faq
- itdaniher 8y ago...as risky as installing a proprietary editor plugin which updates automatically, yes. Also, AFAIK most understandings of MIT, BSD, and Apache 2.0 licenses require you to acknowledge the copyright holders of the source code you compile into your binary, even if the licenses permit binary distribution. I can't find your "Copyright (c) 2018 Tokio Contributors" or "Copyright (c) 2014 The Rust Project Developers" that I'd expect based on `strings TabNine | grep github`. Maybe you've got a lawyer that suggests otherwise? Your plea of "trust me, I have good hygiene" carries less weight when I have to `strings` your stuff to know what shoulders of which giants you're standing on.
- krat0sprakhar 8y agoQuoting the author from r/rust[0] > Its paid features are always enabled when completing Rust code, in acknowledgment of the fact that TabNine could not exist without the Rust ecosystem. Thanks for this, Jacob! [0] - https://www.reddit.com/r/rust/comments/9uhc1x/tabnine_an_autocompleter_for_all_languages_built/ https://www.reddit.com/r/rust/comments/9uhc1x/tabnine_an_aut...
- fiatjaf 8y agoThat's odd, because it could indeed exist without the Rust ecosystem. The author just opted to write it in Rust.
- warent 8y agoTheoretically we don't even need programming languages or compilers at all. REAL programmers used a magnetized needle and a steady hand. [1] Following your logic, nobody should show appreciation for anything. [1] https://xkcd.com/378/ https://xkcd.com/378/
- nithinm 8y agowhat he meant is you could develop something similar in many other languages with the same complexity / time taken in rust.
- fiatjaf 8y agoI meant he could have said: "Because I love Rust, I'm giving this for free to be used in Rust codebases", instead of "this would never exist if not for Rust". Or maybe he's serious, maybe the Rust ecosystem literally saved him from death or something like that.
- warent 8y agoAh, got it! You were being literal and he was not. That's where the confusion is coming from. Your comment came across as mildly aggressive which is probably why you're getting downvoted, but you were just pointing out that what he said made no sense in literal terms which is true. I don't think it was intended to be interpreted literally. The intent and the feeling behind what he was communicating was represented clearly.
- sidcool 8y ago>TabNine is 11,000 lines of Rust. In recognition of the fact that TabNine could not exist without the Rust ecosystem, TabNine's paid features are always enabled when completing Rust code. This makes me very happy as a new Rust learner.
- tobr 8y agoJust installed the Sublime Text version. It seems to work as promised. Would be great if it could support unsaved files too.
- ajhofmann 8y agoI've been using TabNine for a few weeks, and it's really cool how well it works. My first "woah" moment with it was writing a function where the first thing I wanted to do was take the length of the array, and once I started typing def foo(bar): n it suggested the entire completion of "= len(bar)". It has a really cool way of picking up your coding style that makes it stand out to me. Full disclosure that I know the author.
- Buttons840 8y agoI agree that is worthy of a "woah". Thinking about it more, I wonder how useful that type of autocompletion is for those who can type fast. I wonder how much time it takes my brain to context switch away from "code authoring and typing mode" to recognize the " = len(bar)" in the autocomplete options list. It seems like it would be faster to just type out the " = len(bar)" for those who type a solid 60+ words a minute?
- carlmr 8y agoI'm trying it out now. If it works well $30 is nothing for this magic. Especially in VSCode, my favorite editor. I have a problem with many languages not having the support I need. And I also don't have the best memory, so autocompletion makes me much faster and costs me less frustration with Googling.
- wasd 8y agoHow does TabNine work for all languages? Curious about implementation details and use with dynamic languages. I would HAPPILY pay $29 if it works well for Ruby.
- ajhofmann 8y agoI've been using it for Python mainly but I find it's really helpful. It can often infer arguments for functions or functions to use based on the variable names. I've used Ruby lots in the past and I think it would work just as well based on my experience. I would give the free version a try and see what you think.
- hartator 8y agoAwesome. Excellent work. It seems to work with a small Ruby app, but not with a big Ruby on Rails application. Is it because it's too large? How can I check for errors or index status? Using it with Sublime Text.
- Mic92 8y agoI suppose you are running into the index size limitation that is mentioned here: https://tabnine.com/buy https://tabnine.com/buy
- hartator 8y agoI suppose it's that. I wonder why I don't see any error messages tough. I don't want to buy it if it won't work for my project. It's more than 200kb and 15mb but the .rb are way less. [edit] Ok, it just took a bit before showing the tab competitions and the license message. Will be useful to know where the index process is at. [edit2] Just bought a license. Keep up the good work!
- luislezcair 8y agoI'm also interested in using it for a Rails application. Does it work well with the payed version?
- timeseries2018 8y ago>> with the payed version? with the paid version
- nickdandakis 8y agoFirst impression is that this is insanely fast and is actually giving recommendations based on context, without setting up additional files. So, it's doing exactly as advertised. I'm using this in Vim and would like to know if there's a way to configure it such that the dropdown does not show up until I hit <C-n> or <C-p>? I realize that this is supposed to be a zero-config tool, and I'm asking for a configuration! Great job with pricing as well. Going to use this for a week before I commit to the license but $29 is a no-brainer for how much use I'll get out of this autocomplete.
- StavrosK 8y agoI don't think it's supposed to be zero-config, it's just supposed to come with sane defaults.
- nickdandakis 8y agoTo answer my own question, the Vim plugin is a fork of YouCompleteMe, so you can configure it as per YouCompleteMe's docs.
- tbodt 8y agoI've written a vim plugin for people who use deoplete and YCM would conflict: https://github.com/tbodt/deoplete-tabnine https://github.com/tbodt/deoplete-tabnine
- sundayedition 8y agoThank you for this. The deoplete defaults are much more sane than ycm. I've started using your plugin. I'm glad to see the author of tabnine has asked to feature it on his site.
- imh 8y agoI wish someone would figure out the right UX for partial autocompletion. e.g. I type "wo" and my phone suggests ("would", "work", "wonder"), there should be an easy way to say I'm trying to type "working" rather than clicking the "work" autocomplete then backspace, then "ing". I'd imaging TabNine has this problem in spades, since it does such long autocompletes. It could suggest "unsigned long long" when I've typed "unsi" and I really want "unsigned long int". Seems like a tough UX problem. ¯\_(ツ)_/¯
- sz4kerto 8y agoThis can work with camel casing. So you type UnsiLI, then enter.
- asdkhadsj 8y agoFwiw, if there are competing `unsigned long int` autocompletes, it looks like it will shorten the recommendation to `unsigned long `, which is really neat. This is just based on the site, I've not tried it yet. YMMV
- gumby 8y agoTyping an 'r' is faster than clicking on "work" then backspacing.
- king_phil 8y agoWhich doesn't have anything to do with the problem decribed. He doesn't want to write "wor" but "working".
- function_seven 8y agoThat can lead to ("Work", "Worry", "Word") so you'd then have to type the 'k'. Now you could have ("Work", "Worker", "Worked") and still are missing the variant you want. It'd be nice to long press "Work" at step one, get that completed without a space being inserted, then tap 'i' to get ("Working", "Workings", "Workingmen")
- pbhjpbhj 8y ago
- yangikan 8y agoWill it work with the existing autocomplete mechanism in vscode python extension?
- jniedrauer 8y agoAny thoughts on how this performs vs deoplete? I've really enjoyed deoplete. It makes my coding quite a bit faster. However I've recently become pretty frustrated with all the gocode forks and go module interaction, so there's definitely room for improvement.
- nims11 8y agoTabnine and something like deoplete are not directly comparable in my opinion. Deoplete is a completion framework (with dictionary based language specific systems) and tabnine is an intelligent language-agnostic completion system. You could theoretically have Tabnine support deoplete (it is currently YCM based). As the author mentioned in an other reply, dictionary based completion systems are good for api exploration, while tabnine is for more contextual completion.
- fmoralesc 8y agoDeoplete is not dictionary based. Deoplete sources are python classes that yield lists of 'matches' (some are language specific and some are not). You can make it give you back quite about anything. (Disclaimer: I wrote deoplete's original version of the "file" source, which completes file paths).
- tbodt 8y agoI wrote a Deoplete source for TabNine: https://github.com/tbodt/deoplete-tabnine https://github.com/tbodt/deoplete-tabnine
- pandeykartikey 8y agoApparently I see two drop downs for auto completion, Since I installed TabNine :/.
- spectrum1234 8y agoDisable your text editors default?
- lynxaegon 8y agoReally nice. Good job! I tested it in Sublime Text, and it's a bit odd that i can tab after i first pressed the tab button and the autocomplete window disappeared, but i think i can work with that :)
- woolvalley 8y agoWhy is the paid index limit 15MB? Why does the paid version have a limit?
- darol100 8y agoI was wondering the same thing. I have a huge project that I would love to TabNine. Since they are still on beta, it's possible to be a product limitation rather than a business limitation.
- jacob-jackson 8y agoTabNine will still work on projects of 15MB or more, it will index the 15MB of files that are most relevant to the files you are editing (determined by distance in the directory tree). The limit exists because otherwise latency or RAM usage might be too high.
- phren0logy 8y agoAny chance this could be a configuration option?
- fallenhitokiri 8y agoA configuration option would indeed be nice. I have more than enough memory for tools providing a high value for my daily work. Kudos for setting same defaults!
- smortaz 8y agoCongrats! Out of curiosity, is this fundamentally different/better than the one in vscode? Nice to see it's multi-lingual. https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode https://marketplace.visualstudio.com/items?itemName=VisualSt...
- demircancelebi 8y agoI tried the free version and immediately jumped to premium. Very impressive work. Best software purchase in a long time.
- therein 8y agoThis looks great. Giving it a try right now. Also really awesome of you to provide premium features to the Rust ecosystem for free.
- anschwa 8y agoThis is extremely cool. Emacs has a similar, though less intelligent, language agnostic auto-complete function called hippie-expand[0], which has generally been good enough for my needs. [0] https://www.gnu.org/software/emacs/manual/html_node/autotype/Hippie-Expand.html https://www.gnu.org/software/emacs/manual/html_node/autotype...
- modernerd 8y ago“If TabNine does not work as soon as you install it, this is a bug and you should file an issue.” Just wonderful. All dev tools should be like this. I got great results for a PHP/JS project straight away — an instant upgrade for me just to support continued development.
- nik1aa5 8y agoThis sounds like a cool idea for an open-source project. :-)
- hivacruz 8y agoLooks neat! Is there a way to make the autocomplete popup in sublime text look like the original one? Mine looks terrible right now.
- Tade0 8y agoAny plans for WebStorm et al.?
- danShumway 8y ago> TabNine builds an index of your project, reading your .gitignore so that only source files are included. Heads up, it's not necessarily uncommon for JS developers to include node_modules in their git repos. If you're developing something like an Electron project or a website instead of a library, it's even sometimes advised to do so -- there's a line of thought that your static dependencies should be tracked as part of your source control. It might not be a terrible idea to have an alternate config for this that allows excluding other directories. Even if a developer doesn't include their dependencies, they might have old code that they don't want integrated into their suggestions if they're in the middle of a refactor or something.
- nathancahill 8y agoDear god
- setr 8y agoDoes npm not have version pinning? Why would you want to operate as if you didn't have a package manager, as your default behavior?
- thrower123 8y agoAt one point, it did not, and the default behavior when one did npm install was to use quite permissive packages.json rules that allowed minor and patch updates. I remember being bitten by this a few times years ago, particularly when semver was more poorly understood.
- danShumway 8y agoDepends on if you want to bother setting up Artifactory. The problem with having your dependencies outside of your project directory is you're now relying on a network request and a build step to get your stuff up and running. It's obviously not right for every project, I wouldn't classify it as default behavior or even a standard behavior. But if you're already using Vagrant/Docker to standardize environments across your entire stack, there's an argument to be made that there's really no need to not to have your dependencies precompiled and local to the project. If you can get rid of complexity, it's worth considering whether or not doing so might be a good idea. Across standardized environments, fetching dependencies is extra complexity.
- stdcall83 8y agoWhy is there 15MB limit. I would love to use it on Linux kernel development. The tree is huge. Can it handle that?
- jacob-jackson 8y agoIt should be able to handle it. I just added a 30-day money back guarantee.
- usaphp 8y agoI like the license registration process, so intuitive and simple.
- typon 8y ago200KB for the free version seems really small :(
- jade12 8y agoAgreed. 200KB is far too small to effectively evaluate the offering. A blank Ruby on Rails app is several times that amount, and the yarn.lock file alone is nearly 300KB.
- jacob-jackson 8y agoYou can still evaluate it if your project is larger than 200KB. TabNine will choose files to index that are relevant to the files you are editing (determined by distance in the directory tree).
- nbevans 8y agoVisual Studio support please :) This looks really good
- frou_dh 8y agoDo you have to give up existing specific-language-aware completions to use this? Or are the editor plugins implemented in such a way that it gets mixed in to what you already have?
- amasad 8y agoI've prototyped something like this in the past using n-grams and it was surprisingly effective. When I think it gets really interesting is if you marry ML/NLP tactics with traditional static code analysis. So you can imagine the ML engine generating the suggestions with the static analyzer ranking the suggestions intelligently. It's kind of similar to the original AlphaGo where you have the model generate the potential moves that are then ranked by the Monte Carlo Tree Search algorithm.
- pavelbr 8y agoI believe the Visual Studio team is working on something like this to provide better autocomplete for specifically C#.
- simias 8y agoI must say that I never found a "clever" autocomplete that really suited me, I just ended up using a rather dumb "hippie-expand" in Emacs that basically tries to complete the word under the cursor using anything it finds in the current file or, failing that, any other open file. It's very dumb but it works regardless of language (including completing plain text in emails for instance) and it's predictable. I'm pretty interested in your project, the way it seems to be able to learn from the way you type matches my workflow better than the usual "clever" auto-expander. I also have no issues paying for good tools (and $29 is really negligible as far as I'm concerned when it's for productivity tools, my keyboard alone costs an order of magnitude more). However, and I know I'm probably in the minority here, I won't even consider using your program if I can't get the source. I'm not even asking for a FLOSS license or anything, even if it just came with a tarball that I can't redistribute I would consider it. But as it stands I would be completely relying on you maintaining the code and porting it to whatever platform I may want to use later. As it stands for instance it seems that you don't provide binaries for the BSDs: https://github.com/zxqfl/tabnine-vim/tree/master/binaries/0.6.0 https://github.com/zxqfl/tabnine-vim/tree/master/binaries/0.... . I'm sure I could get it to work with Linux binary compatibily on FreeBSD but why even bother? What if Apple releases an ARM-based desktop a few years from now and you've stopped maintaining your project? Then I have to replace it with something else if I have to code on a Mac. The price is a non-issue but having to work around the closed source nature of the software is not something I want to bother with. Again, I know that I'm probably in the minority and that many people on HN have no issues using mostly closed source development stacks but I genuinely wonder if you'd have much to lose if you kept the same business model but provided the source. I mean, if people want to pirate your program I'm sure they'll find a way even if it's just the binary, so I doubt you gain much from that. Then the risk is people stealing your code but is there really that much secret sauce in an autocomplete program? If people really care won't they just reverse-engineer it anyway? Aren't they even more likely to try and reverse-engineer it if it's the only way to get an open source version that they control? Maybe I'm overthinking this. Anyway, I hope I don't appear too negative, that's just my opinion. I'm happy to see people working on improving our code editing experience in any way or form, sometimes it feels like we're still in the stone age with our dumb ASCII files and relatively primitive tooling.
- 8y ago
- joshstrange 8y agoCan't wait to see this for Intellij, looks really cool but I am fully bought in on IDEA and while I have used Atom/VS/Sublime/etc this isn't enough to give up everything else I get in IDEA.
- dzek69 8y ago+1 for intellij, I'm usually not into extensions, but this one seems worthy
- trishume 8y agoI've been using TabNine for a couple months now and it's been really great. It "just works" and I don't ever have to worry about it even when opening large projects. It's always fast and high-quality. It really feels like it's just part of Sublime Text in a way that's very rare for a plugin.
- peterhajas 8y agoHow does licensing work? Does this give me a file I put on my machine? I have my dotfiles checked into git, so I'd rather not commit the license publicly.
- mpartel 8y agoYou get a license code that you paste into an editor with TabNine installed. The autocompletion engine sees it and completes the registration. Not sure where it gets saved ultimately.
- mpartel 8y agoI'm trying this with VSCode and C#. It's quite neat, though no doubt it'd be even better with a dynamic language. My main issue is when I type a '.', the C# extension gives me an accurate list of members, but TabNine intersperses its own guesses, which are often wrong. Possible fixes or mitigations (VSCode API permitting): - After a '.', discard the TabNine completions whose prefix doesn't match one of the C# completions. - After a '.', discard all one-word TabNine completions. - Give all TabNine completions a different icon and maybe sort them all at the top or bottom.
- kasbah 8y agoLooks neat, will give it a go. I think you may be in violation of the GPL for your vim plugin since you are creating a combined work but are not releasing the TabNine source code under GPLv3. https://github.com/zxqfl/tabnine-vim/blob/master/COPYING.txt https://github.com/zxqfl/tabnine-vim/blob/master/COPYING.txt
- tzs 8y agoIt looks like it is probably OK. The vim plugin it is based on seems to have already been designed to run using a client/server architecture. The plugin is the client, and it gets its completions from a server. He just changed it so that it uses TabNine as that server.
- tmerr 8y agoNot cool in my book regardless of legality. Rebranding it to tabnine-vim alone is confusing, since none of the legwork for vim support belongs to TabNine. At the very least the original copyright notice should be left intact in the README (iiuc this is required by GPLv3).
- tzs 8y agoIt includes a copy of GPL. The README tells you what it applies to, and what it does not. It tells you where to find the original project it was forked from. And all the files that the TabNine guy did not write contain their original copyright notices from the YouCompleteMe authors.
- dkarbayev 8y agoI just installed it in Sublime Text 3, TabNine seems to expand the first autocompletion only if the character to the left of cursor is not a whitespace, i.e. if I'm typing "let v = |" (where | is a cursor) and TabNine shows me a list of autocompletions, I press Tab key and then \t is inputted instead of first suggestion.
- oedmarap 8y ago> Why is it called TabNine? > When using the Sublime Text client for TabNine, the keyboard shortcut to select the ninth suggestion is Tab+9. Before reading that I thought it was loosely named after the old T9 (Text on 9 keys) predictve system for mobile phones with numeric keypads only. That being said, while I'm still passively learning to code and may not need a full license yet, it's a well-priced gift idea for friends who are full-time developers.
- wingerlang 8y ago> .. predictve system for mobile phones with numeric keypads only I'm curious if this explanation is needed on HN
- nyxtom 8y agoI've had better luck with TernJS and deoplete in vim. I really like that this is much more responsive but it lacks the completion support that I have to expect with ternjs.
- usaphp 8y agoI wonder how can I disable it for certain file types, for example in SCSS I don't want those, because I already have a good auto suggester that I am used to.
- heydoon 8y agoThis is amazing
- heydoon 8y agoThis is amazing!
- phiresky 8y agoNice. I had the same idea a while ago [1], but I didn't make it very far. Good to see that the concept of applying ML to intellisense can actually be useful. [1]: https://github.com/phiresky/deep-intellisense https://github.com/phiresky/deep-intellisense Video https://www.reddit.com/r/programmerhumor/comments/8xrwr5/_/ https://www.reddit.com/r/programmerhumor/comments/8xrwr5/_/
- nojvek 8y agoPlayed with free for a bit, 200KB is quite a bit low, didn't get any completions. Purchased the premium licence. Gotta say stripe integration is very smooth. Overall after a couple of hours of playing with this. My mind is quite blown away. This is absolutely amazing. Hopefully Microsoft or someone acquires this technology for a fat sum and open sources it. I've thought about code completion smarts for a long time. You actually executed and delivered a product. Kudos! Take my money!
- tom_mellior 8y agoI don't get the jump from "didn't get any completions" to buying the premium license. Can you explain?
- Insanity 8y agoI suppose because it's worth trying and the price is not unreasonably high. But the 15MB indexed limit to me seems strange on premium, as others have mentioned.
- Buttons840 8y agoDid you see much improvement in the suggestions after purchasing and using the larger index?
- nojvek 8y agoI was using it on a large project so 15 MB got me no completions on the files I cared. $30 is a pretty cheap price for a pattern based completion engine. It’s the first time I’ve seen it work well. It was completing fairly long statements and I was pleasantly surprised how close the first few results were to what I wanted. The whole configurationless, all language completion using pattern analysis and fast index lookups in a very easy to install delivery is great execution. This are the kinds of little small things that make me think “why didn’t I do this?” I wish the author gave, 30 day free premium trial. A lot people would be willing to spend on the license IMHO.
- mdip 8y agoLet me be not the first to say ... nice! You've ticked a lot of boxes for me, Rust to boot. And the price is reasonable. I echo some of the privacy concerns, but I am not a purist who will not use proprietary development tools -- many of which are from small shops. I had questions that I'm sure I'll get answered after I install the trial extension: I noticed in some of the examples that the autocompletions were multi-word (for the language involved). This makes sense and I have no real problem with that it limited cases. What I wonder is have you found any issues with autocompletions resulting in less DRY code? - and - Since it's not parsing, is it possible to tell it to not show autocompletions based on a pattern? This is no deal breaker, it just annoys me when code comments accidentally invoke the drop-down and I'd imagine that a similar problem could happen with strings.
- cjohansson 8y agoSounds like a great tool, I got two feature requests: * make .gitignore logic optional, we always have the system we’re working with ignored and only include our extension but we really need autocompletion from the whole project * Emacs plugin
- wookayin 8y agotabnine-vim: YCM? Sorry to hear that...
- _wraithy 8y agoAgreed. This was a deal breaker for me. It would be really great if it somehow implemented a standard protocol (like https://langserver.org/ https://langserver.org/) in order to integrate with existing completion plugins.
- tbodt 8y agoI wrote an alternative vim plugin as a deoplete source: https://github.com/tbodt/deoplete-tabnine https://github.com/tbodt/deoplete-tabnine
- nukemandan 8y agoWhat if it autocompletes bugs and vulnerabilities?
- svetlins 8y agoI guess the goal is to save you some keystrokes not save you from having to think.
- pvdebbe 8y agoPray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?
- zawerf 8y agoI find it interesting that this quote will become less and less absurd as technology continues to improve. The confusion stems from the fact that a human can tolerate a certain amount of "wrong" and still give the "right answer". For example you don't need to speak with perfect grammar to be understood. Humans won't choke on syntax errors the same way a browser chokes on malformed html. Machines are much more rigid and can't understand context and intent. But this is starting to slowly change in the age of machine learning. For example if I make a small typo, I expect an autocompleter to still understand what I was trying to type. It wouldn't be too absurd to believe that in a not too distant future, it would also be able to autocomplete away common/obvious bugs. Maybe it can even autocomplete/rewrite code from near pseudocode if the intent is clear enough.
- hipplec 8y agoVery cool project. Did you also do the machine learning research and model development in Rust?
- v310 8y agowill it work with youcompleteme on vim or should i remove youcompleteme and use tabnine only.
- drcongo 8y agoThis is amazing, thank you.
- carlmr 8y agoI'm trying it out for a bit now, I'm really intrigued. If I buy it, can I use it at work and at home? Also how do you enter in VSCode that you purchased the pro extension?
- slig 8y agoAfter purchasing you'll get a special text with your email/license key that you copy/paste on an empty editor and it's done.
- imhoguy 8y agoLooks like you can: License keys may be used on multiple computers and operating systems, provided the license key holder is the primary user. https://tabnine.com/eula https://tabnine.com/eula
- carlmr 8y agoPerfect, thank you!
- eeZah7Ux 8y agoIs there any FLOSS alternative to this? Any good doc on the ML used?
- NetOpWibby 8y agoI've been using this for the past 20 minutes in Sublime Text and, well, it's quite sublime. Holy shit.