{"id":13832967,"url":"https://github.com/markiewb/nb-additional-hints","last_synced_at":"2025-03-21T19:31:33.998Z","repository":{"id":6771157,"uuid":"8017972","full_name":"markiewb/nb-additional-hints","owner":"markiewb","description":"Additional java hints for NetBeans IDE http://plugins.netbeans.org/plugin/47589/additional-hints","archived":false,"fork":false,"pushed_at":"2017-02-11T12:40:39.000Z","size":2054,"stargazers_count":7,"open_issues_count":29,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-18T04:16:18.678Z","etag":null,"topics":["hint","hints","inspections","java","java-editor","netbeans-plugin","quickfix"],"latest_commit_sha":null,"homepage":"http://benkiew.wordpress.com/2013/03/17/netbeans-ide-additional-hints-plugin-to-simplify-the-work-with-string-literals/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markiewb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-04T22:41:04.000Z","updated_at":"2021-03-18T17:21:19.000Z","dependencies_parsed_at":"2022-08-31T23:02:28.563Z","dependency_job_id":null,"html_url":"https://github.com/markiewb/nb-additional-hints","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markiewb%2Fnb-additional-hints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markiewb%2Fnb-additional-hints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markiewb%2Fnb-additional-hints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markiewb%2Fnb-additional-hints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markiewb","download_url":"https://codeload.github.com/markiewb/nb-additional-hints/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244855472,"owners_count":20521650,"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":["hint","hints","inspections","java","java-editor","netbeans-plugin","quickfix"],"created_at":"2024-08-04T11:00:35.042Z","updated_at":"2025-03-21T19:31:33.404Z","avatar_url":"https://github.com/markiewb.png","language":"Java","readme":"\u003chr\u003e\n\u003ch1 style=\"color: #FF0000\"\u003eLooking for maintainers, who want to take over the development!\u003c/h1\u003e\n\u003chr\u003e\n\n[![Build Status](https://travis-ci.org/markiewb/nb-additional-hints.svg?branch=master)](https://travis-ci.org/markiewb/nb-additional-hints)\n[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=K4CMP92RZELE2)\n\nPlugin page: \u003ca href=\"http://plugins.netbeans.org/plugin/47589/\"\u003ehttp://plugins.netbeans.org/plugin/47589/\u003c/a\u003e\n\n\u003ch1\u003eAdditional Java hints for NetBeans IDE\u003c/h1\u003e\n\n\u003ch2\u003eSupported Hints:\u003c/h2\u003e\n\n\u003cul\u003e\n\u003cli\u003e\"Replace '+' with 'MessageFormat.format()'\"\u003c/li\u003e\n\u003cli\u003e\"Replace '+' with 'new StringBuilder().append()'\"\u003c/li\u003e\n\u003cli\u003e\"Replace '+' with 'String.format()'\"\u003c/li\u003e\n\u003cli\u003e\"Join literals\"\u003c/li\u003e\n\u003cli\u003e\"Copy joined literals to clipboard\"\u003c/li\u003e\n\u003cli\u003e\"Split at linebreaks\"\u003c/li\u003e\n\u003cli\u003e\"Split at caret\" (since 1.1)\u003c/li\u003e\n\u003cli\u003e\"Convert to assertTrue/assertFalse\" (since 1.1)\u003c/li\u003e\n\u003cli\u003e\"Support transformation to BigDecimal constants\" (since 1.1)\u003c/li\u003e\n\u003cli\u003e\"Remove \"public abstract\" modifiers from method declarations within interfaces\" (since 1.1)\u003c/li\u003e\n\u003cli\u003e\"Remove public/abstract/final modifiers from field declarations within interfaces\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Change modifiers\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Convert char to string and back\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Convert number in literal to number and back\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Convert to StringUtils.isBlank()/StringUtils.isNotBlank()/StringUtils.isEmpty()\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Convert from if/else to ternary and back\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Invert ternary if/else\" (since 1.2)\u003c/li\u003e\n\u003cli\u003e\"Report methods that have class name\" (since 1.2, no transformation)\u003c/li\u003e\n\u003cli\u003e\"Add \"this.\" to methods and variables\" (since 1.3, disabled by default)\u003c/li\u003e\n\u003cli\u003e\"Replace with Optional.isPresent()/Convert return null to return Optional.empty()\" (since 1.5)\u003c/li\u003e\n\u003cli\u003e\"Replace with null-assignment to Optional with Optional.empty()| (since 1.6)\u003c/li\u003e\n\u003cli\u003e\"Convert return xxx to return Optional.ofNullable(xxx)/Optional.of(xxx)/Optional.empty()| (since 1.6)\u003c/li\u003e\n\u003cli\u003e\"Convert to assertNull\" (since 1.6)\u003c/li\u003e\n\u003cli\u003e\"Replace with org.junit.Assert\" (since 1.6)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2\u003eExample:\u003c/h2\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/markiewb/nb-additional-hints/v1.6.1/doc/screenshot.png\"/\u003e\n\n\u003ch2\u003eUpdates\u003c/h2\u003e\n\u003ch3\u003e1.6.1:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/78\"\u003eBugfix\u003c/a\u003e]: Fixed: Hints for converting ternary to if and back are missing\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.6.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/55\"\u003eNew Fix\u003c/a\u003e]: Replace with null-assignment to Optional with Optional.empty()\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/56\"\u003eNew Fix\u003c/a\u003e]: Convert return xxx to return Optional.ofNullable(xxx)/Optional.of(xxx)/Optional.empty()\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/63\"\u003eNew Fix\u003c/a\u003e]: Convert to assertNull\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/68\"\u003eNew Fix\u003c/a\u003e]: Replace with org.junit.Assert\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/54\"\u003eUpdated Fix\u003c/a\u003e]: \"Replace +...\" works for more expressions\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/57\"\u003eUpdated Fix\u003c/a\u003e]: Fixed false positive result from \"Convert to Optional.isEmpty()\"\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/58\"\u003eUpdated Fix\u003c/a\u003e]: Make \"Change modifiers\" hints non-intrusive\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/59\"\u003eUpdated Fix\u003c/a\u003e]: Make \"Change modifiers\" hints work for constructors too\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/64\"\u003eUpdated Fix \u003c/a\u003e]: java.lang.NullPointerException in \"Report methods that have class name\"\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/75\"\u003eUpdated Fix \u003c/a\u003e]: java.lang.NullPointerException in ReturnForOptional\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/70\"\u003eRemoved Fix\u003c/a\u003e]: \"dead instanceof\" hint has been removed\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/72\"\u003eTask\u003c/a\u003e]: Update dependencies to NB 8.1\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/76\"\u003eTask\u003c/a\u003e]: Reduce dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.5.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/42\"\u003eUpdated Fix\u003c/a\u003e]: \"Convert to if/else\" now supports assignments to new variables\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/43\"\u003eUpdated Fix\u003c/a\u003e]: \"Invert ternary\"/\"Convert to ternary\" now support conditions without brackets\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/3\"\u003eUpdated Fix\u003c/a\u003e]: \"Replace +...\" is not proposed for erroneous conditions anymore\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/51\"\u003eUpdated Fix\u003c/a\u003e]: \"Replace +...\" works for more expressions\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/50\"\u003eUpdated Fix\u003c/a\u003e]: Remove false positive detected by \"Detect dead instanceof\"\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/56\"\u003eNew Fix\u003c/a\u003e]: Replace with Optional.isPresent()/Convert return null to return Optional.empty()\u003c/li\u003e\n\u003cli\u003e[Task]: Update requirements JDK7 and NB7.4\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.4.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/44\"\u003eNew Hint\u003c/a\u003e]: Detect dead instanceof-expressions\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/2\"\u003eUpdated Fix\u003c/a\u003e]: \"Replace +...\" hints can now supports chars too\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/47\"\u003eMeta\u003c/a\u003e]: Add donation link (for those who want to support this project)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.3.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/36\"\u003eUpdated Fix\u003c/a\u003e]: \"Invert ternary if/else\" now supports more patterns\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/39\"\u003eNew Hint\u003c/a\u003e]: Add \"this.\" to methods and variables (disabled by default)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e1.2.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/pull/22\"\u003eNew Fix\u003c/a\u003e]: Change the modifier of a class/method/field to public/package protected/protected/private  (by \u003ca href=\"https://github.com/rasa-silva\"\u003erasa-silva\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/24\"\u003eNew Fix\u003c/a\u003e]: Remove public/abstract/final modifiers from field declarations within interfaces\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/9\"\u003eNew Fix\u003c/a\u003e]: Convert from char and string and back\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/10\"\u003eNew Fix\u003c/a\u003e]: Convert number in literal to number and back\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/12\"\u003eNew Fix\u003c/a\u003e]: Convert to StringUtils.isBlank()/StringUtils.isNotBlank()/StringUtils.isEmpty()\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/31\"\u003eNew Fix\u003c/a\u003e]: Convert from if/else to ternary and back\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/32\"\u003eNew Fix\u003c/a\u003e]: Invert ternary if/else\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/34\"\u003eNew Hint\u003c/a\u003e]: Report methods that have class name\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/29\"\u003eUpdated Fix\u003c/a\u003e]: \"Convert to assertTrue/assertFalse\" now supports junit.framework.Assert too\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/20\"\u003eUpdated Fix\u003c/a\u003e]: \"Replace +...\" hints can now be configured\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003e1.1.0:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/11\"\u003eNew Fix\u003c/a\u003e]: Support transformation to BigDecimal constants\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/5\"\u003eNew Fix\u003c/a\u003e]: Split a string at caret\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/13\"\u003eNew Fix\u003c/a\u003e]: Convert to assertTrue/assertFalse\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/14\"\u003eNew Fix\u003c/a\u003e]: Remove \"public abstract\" modifiers from method declarations within interfaces\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/8\"\u003eBugfix\u003c/a\u003e]: Literals with quoted Strings won't be copied properly to clipboard\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/7\"\u003eRefactoring\u003c/a\u003e]: Convert to maven based module\u003c/li\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/18\"\u003eRefactoring\u003c/a\u003e]: Hints should be proposals instead of errors/warnings\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.0.x:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ca href=\"https://github.com/markiewb/nb-additional-hints/issues/1\"\u003eBugfix\u003c/a\u003e]: Literals with quoted Strings create uncompileable code\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca name=\"further-information\" class=\"anchor\" href=\"#further-information\"\u003e\u003cspan class=\"mini-icon mini-icon-link\"\u003e\u003c/span\u003e\u003c/a\u003eFurther information:\u003c/h2\u003e\n\n\u003cp\u003eThis plugin is orginally based on code from the \u003cem\u003e\"I18N Checker\"\u003c/em\u003e plugin from \u003cem\u003eJan Lahoda\u003c/em\u003e.\nThe original sourcecode can be found at \u003ca href=\"http://hg.netbeans.org/main/contrib/file/tip/editor.hints.i18n\"\u003ehttp://hg.netbeans.org/main/contrib/file/tip/editor.hints.i18n\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eLicense remains CDDL-GPL-2-CP - \u003ca href=\"http://www.netbeans.org/cddl-gplv2.html\"\u003ehttp://www.netbeans.org/cddl-gplv2.html\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003e\nProvide defects, request for enhancements and feedback at \u003ca href=https://github.com/markiewb/nb-additional-hints/issues\"\u003ehttps://github.com/markiewb/nb-additional-hints/issues\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003eCompatible to NetBeans 8.1+\u003c/p\u003e\n\u003cp\u003e\n\u003ca href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=K4CMP92RZELE2\"\u003e\u003cimg src=\"https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif\" alt=\"btn_donate_SM.gif\"\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=K4CMP92RZELE2"],"categories":[":electric_plug: Plugins \u003ca name=\"plugins\"\u003e\u003c/a\u003e"],"sub_categories":["Development"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkiewb%2Fnb-additional-hints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkiewb%2Fnb-additional-hints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkiewb%2Fnb-additional-hints/lists"}