All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- [#400] Run line marker now also shows up at the last line of the tinker console.
3.0.0 - 2025-06-19
- Added file type,
*.tinker.php. This will allow you to put scripts anywhere in your project and give them custom names.- This has resolved [#393] indirectly as well.
- This also has solved the confusing 3v4l.org run button above the console.
- Added per-project configuration option as to where to store the tinker consoles the plugin creates.
- The output windows now automatically opens/closes when switching to/away from a tinker console. (Thanks @KamikX!)
- Added a "clear console" action. (Thanks @KamikX!)
- [#330] Tinker consoles are now saved within the project, so you have per-project tinker consoles.
- [#364] Changed Laravel project detection to use the existence of
venctor/laravel/framework/conposer.jsoninstead of checking in the composer.json file for thelaravel/frameworkpackage.
- [#392] Moved tinker actions to the BGT, removing the EDT error.
- New tinker consoles now always start with the
<?phptag. - Fixed the
OpenNewConsoleWithSelectionActionusing the current editors VirtualFile (Thanks @KamikX!)
- Laravel Tinker Console from the "Scratches and Consoles" menu.
⚠️ BREAKING CHANGE: Your old tinker consoles are still available on the file system. You can find them in the${idea.config.path}/laravel-tinkerdirectory. Your tinker consoles will not be automatically migrated to the new location, because the new location is per-project. You can copy them manually to the new location, or just create new tinker consoles.
Where is my idea.config.path?
- Updated dependencies to their latest versions, including the migration to Intellij Platform v2.
2.7.3 - 2024-06-19
- [#349] Fixed a compatibility issue with PHP 7.0 (Laravel 5.5) and older versions of PsySH.
- [#306] Put all laravel functionality behind a check to see if the project is a laravel project, making the plugin also work with plain PsySH without laravel or tinker installed.
2.7.2 - 2024-06-17
2.7.1 - 2024-06-17
- Reverted the fix for windows users where Cyrillic and Arabic characters would be lost in encoding conversions.
- Sorry to these users, I'm still waiting response from JetBrains to properly fix this issue. The workaround I implemented for 2.7 brings more issues than it fixes.
2.7.0 - 2024-04-09*
- Your tinker plugin settings might reset after the update - sorry for that :)
- Swapped out deprecated StringEscapeUtils.
- Fixed ModalityState deprecation warning.
- [#316] Fixed ActionUpdateThread deprecation.
- [#312] Fixed app settings storage conflict with another plugin.
- [#255][#280] Fixed (worked around) characters not present in windows-1252 charset being displayed weirdly on windows machines.
- Fixed deprecation warnings coming from the Migrations.
- Updated all dependencies to their latest versions.
- Fixed a typo in feature request template. (Thanks @igorsantos07!)
- Changed minimal version to 2024.1, deprecating the plugin for older versions of IDEs.
2.6.1 - 2023-05-08
- [#252] Cast exception when running on an SSH interpreter.
- [#253] Remove unneeded
withPtty: truefrom process handler. - Fixed an early return when no ansicommands are found in the output, that also not parsed out the whisper tag.
2.6.0 - 2023-04-16
- Added new
castProcessResulttinker caster. (Thanks @emargareten!) - ANSI Parser for the output window within the Kotlin part of the plugin.
- Meta tag to set charset to UTF8 in toolwindow HTML.
- Now using the ToolWindow without use of a .form file, which was not supported in combination with Kotlin (even though it always had worked in the past).
- Reverted to the pre-2.5 tinker_run.php, since the new method didn't work in all cases.
- Pulled missed changes from the Intellij platform plugin template.
2.5.1 - 2022-12-14
- [#220] Add context menu action in tinker consoles to run the console.
- Replace JB run icon with a green tinker run icon.
- [#223] Editor font size is now used as font size for the tinker console.
2.5.0 - 2022-12-13
- [#190] Add way to customize vendor path. (Thanks @bobisdacool1!)
- Also fixed the bug from this PR where it crashed if you didn't configure anything.
- [#171] Add ANSI mode parsing (instead of regex-replace-guessing in the output window)
- Due to demand: added more ways to support this plugin, like Ko-Fi and sharing options.
- Adding these ways to a rotation for the support message every 10 executions.
- Adding these ways to
FUNDING.yml. - Generalize "Patereon" to "Support" in the code.
- Rexeg-replace-guessing in the output window, replaced with ANSI mode parsing.
- [#217] Removed the deprecated ProjectManagerListener.projectOpened event. Didn't replace it with a postStartupActivity because it apparently works without just fine.
- [#212] Whisper tags now get parsed to a span with text color set to gray.
- "INFO" being left after execution because of Laravel's new error parsing in the console.
- Updated dependencies (Thanks @dependabot!)
- Removed some now unused code due to removing of ProjectManagerListener.projectOpened event.
- [#169] Option to call app termination after running code.
- [#178] Process exiting before full output is available.
- [#46] Execution on docker
- ℹ️If it doesn't work, please read this.
- ℹ️This does not fix the "string conversion" error found when using
docker exec. You still have to usedocker runfor now.
- [#162] Endless execution of the tinker process in several usecases (like JB 2022.2 EAP)
- Compatibility issue with JB 2022.2 (EAP) regarding
ContentFactory.SERVICE
- [#136] Upper version limit for JB products.
- ℹ This will enable the plugin to be compatible for all JB products >= 211 until a compatibility issue shows up.
- Updated dependencies.
- Qodana version which stopped the build from completing
- [#112] Adds Open new console and Reopen last console actions to the tinker output toolwindow.
- [#110] Fixes typo in caster for the Model class.
- Way of migrating to newer versions of this plugin.
- [#105] Adds the stringable caster added in laravel/tinker v2.6.1. ( Thanks @emargareten!)
- Restyling of Tinker console tabs.
- [#96] Added compatibility with newer API versions.
- [#34] Setting to change tinker execution root.
- [#75] Empty directory list of tinker consoles resulting in fatal error.
- Dependabot.
- [#35] Setting to enable/disable line wrapping in output window.
- [#33] Adds way for Patreon supporters to disable the support plug.
- [#53] Updates compatibility with 2021.1.
- Updated all dependencies.
- Tinker Consoles having an IS_TINKER_CONSOLE userdata key.
- [#47] [#40]
<and>are now replaced by>and<to make them not parse as HTML in tinker output. - [#40] Fixes always showing output on the last opened project when having multiple projects open.
- [#41] When pressing the x icon on the progress bar to stop the PHP execution, the process now gets destroyed within 250ms.
- New branding by Joey "Veritas" de Vries.
- [#50] Tinker Create/Smart action overwriting its own files from a previous session.
- Tinker files not being PHP when project reloads.
- BREAKING: [#39] Tinker consoles are now available under "Scratches and Consoles".
- [#37] [#38] When selecting text and running the
Smart Actiona new console opens with your selected text.- ℹ This can also be achieved by selecting text, right-clicking and selecting
Open Tinker Console With Selection.
- ℹ This can also be achieved by selecting text, right-clicking and selecting
- BREAKING: Every action is now independently listed.
- ℹ The default action is now "Smart Action" which will have kind-of the same functionality as you have been using it up till now.
- Every action this plugin can do is now individually bindable in your keymap.
- BREAKING: Per-project cache (which stored your last executed tinker code).
- ℹ You can probably find your last snippet still in
%Project%/.idea/laravel-tinker.xmlif you really need it!%Project%/.idea/laravel-tinker.xmlcan be deleted otherwise.
- ℹ You can probably find your last snippet still in
- Reorganization of a lot of classes.
- Dependencies have been updated.
- Updated dependencies.
- Compatibility with 2020.3.
- Laravel Tinker settings page (under Tools).
- [#30] Ability to disable start and finish messages in output.
- [#21] Ability to add a shortcut to close all involving Tinker.
- Dependencies updated to the latest versions.
- The title of the tinker screen was editable - now it isn't.
- [#28] Ending your tinker console with a comment now works correctly again. ( Thanks @emargareten!)
- [#25] When running tinker it will now save all documents before executing.
- [#23] Fixed a bug where output would display twice when the output highlighter didn't find output to highlight.
- [#7] Output syntax highlighting.
- [#11] Plugin won't create a null file anymore on windows.
- [#16] Only 1 tinker console will be open at all times.
- [#18] Added the LARAVEL_START constant to the tinker run script.
- [#19] Colors in output window now reset to IDE colors when running.
- [#12] [#20]
Fixes
Class 'Laravel\Tinker\ClassAliasAutoloader' not found- ℹ Fixes the plugin for laravel/tinker versions
<= 1.0.1.
- ℹ Fixes the plugin for laravel/tinker versions
- [#10] Your last command will now be saved (on per-project level).
- Non-obtrusive reminder you can support this package.
- [#6] Output window now (hopefully) always inherits the font and color of the IDE
- The link to PHP settings in error dialogs now acually links to the correct settings page.
- [#9] Output showing slow on larger outputs.
- Run button at the opening tag of the tinker console.
- Cleaned output of tinker output window
- PHP Runner script is now a php file, makes it easier to work with in the IDE.
- Default keybinding in Mac OS.
- Toolwindow not opening automatically if not opened before.
- Leaving zombie processes (something pcntl did).
- Silent crash when docker was not set.
- Tinker process not shutting down because of waiting for non-existent input.
- [#1] A correct way to interact with remote interpreters.
- Made errors more to the point.
- Better code splitting in message balloons.
- More text in the readme.
- Better formatting in tinker output.
- Laravel now actually gets bootstrapped.
- Removed needless output from interpreter, like docker startup messages.
- Made output toolwindow font show in readable colors.
- Campatibility issues that arose in 0.0.1-ALPHA.
- Everything.