いきなり左端のメニューから
「テーマファイルエディタ」
が消えて、編集できなくなった。
原因はこのプラグインでした。
無効化したらもとに戻りました。
不要じゃね? このプラグイン。
権限関連を厳しくしたんだろうとは思うが。
最近アップデートしたらこのざまです。
いきなり左端のメニューから
「テーマファイルエディタ」
が消えて、編集できなくなった。
原因はこのプラグインでした。
無効化したらもとに戻りました。
不要じゃね? このプラグイン。
権限関連を厳しくしたんだろうとは思うが。
最近アップデートしたらこのざまです。
だるいですよね、インラインテーブル記述。
name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
animal = { type.name = "pug" }
Android Studio でも
Graadle Version Catalog で、最初は、こんな記述でも
[plugins]
android-material = "com.google.android.material:material:1.8.0-alpha02"
やがて、
[plugins]
android-material = { module = "com.google.android.material:material", version = "1.8.0-alpha02" }
となり
[versions]
android-material = "1.8.0-alpha02"
[plugins]
android-material = { module = "com.google.android.material:material", version.ref = "android-material" }
というふうに変わっていきます。
大量にやってるのも地味にだるい。
Live Templete を使って書き換えます。
Preferences
↓
Live Templates
から作っていきます。
ここマクロたちは、思ったより使いづらいものが多い。
割と使える Groovy のマクロ。
groovyScript(
, [arg, ...]) Executes the Groovy script passed as a string.
The first argument is a string with either the text of the script or the path to the file that contains the script. The function passes other optional arguments to the script as values for _1, _2, _3, ..., _n variables. Also, you can access the current editor from inside the script using the _editor variable.
The following example shows a groovyScript() function that splits the selected text into words and displays them as a numbered list:
groovyScript("def result = ''; _1.split().eachWithIndex { item, index -> result = result + index.next() + '. ' + item + System.lineSeparator() }; return result;", SELECTION);
👉 Edit Template Variables dialog | IntelliJ IDEA
以下の感じで設定して4つのテンプレートを記述しました。
どれも似たような記述なので、一つだけ貼っておきます。
使い回せます。
使い方は、該当文字列をコピーしてから、Abbreviation を入力で、テンプレートを吐き出しながらキーなどを編集してください。
結果。
キーの編集に連携されて関連記述が編集されるのがいいところでしょうか。
けどまあ、Android Studio 本体の機能更新が待たれるところですが。
複数行一括のほうがいいので以下の方法を実際は使っています。
【Android Studio】TOML内のすべてをインライン・テーブルに書き換える Live Templates 用 Groovy スクリプト https://t.co/hTpsezFD2d #android #kotlin #groovy #androiddev #プログラミング pic.twitter.com/7PyX7I95gX
— chanzmao (@maochanz) November 11, 2022
以下の関係を公開リポジトリで確認しながら、Plugin ID
を見つけていきます。
classpath "org.jetbrains.kotlin:kotlin-serialization:1.7.20"
groupId : org.jetbrains.kotlin
artifactId : kotlin-serialization
version : 1.7.20
👉 https://plugins.gradle.org/search?term=org.jetbrains.kotlin.android
👉 https://maven.google.com/web/index.html?q=org.jetbrains.kotlin.android
👉 https://central.sonatype.dev/search?q=org.jetbrains.kotlin.android
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20"
apply plugin: "org.jetbrains.kotlin.android"
plugins {
id "org.jetbrains.kotlin.android" version "1.7.20"
}
👉 Gradle - Plugin: org.jetbrains.kotlin.android
classpath "org.gradle.kotlin:gradle-kotlin-dsl-plugins:3.1.0"
apply plugin: "org.gradle.kotlin.kotlin-dsl"
plugins {
id "org.gradle.kotlin.kotlin-dsl" version "3.1.0"
}
👉 Gradle - Plugin: org.gradle.kotlin.kotlin-dsl
classpath "org.jetbrains.compose:compose-gradle-plugin:1.3.0-alpha01-dev827"
apply plugin: "org.jetbrains.compose"
plugins {
id "org.jetbrains.compose" version "1.3.0-alpha01-dev827"
}
👉 Gradle - Plugin: org.jetbrains.compose
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.11.0"
apply plugin: "com.diffplug.spotless"
plugins {
id "com.diffplug.spotless" version "6.11.0"
}
👉 Gradle - Plugin: com.diffplug.spotless
classpath "com.github.ben-manes:gradle-versions-plugin:0.43.0"
apply plugin: "com.github.ben-manes.versions"
plugins {
id "com.github.ben-manes.versions" version "0.43.0"
}
👉 Gradle - Plugin: com.github.ben-manes.versions
よく使いそうな Owner :
👉 Gradle - prod-plugin-portal-publishing (Gradle)
👉 Gradle - kotlin (Kotlin Team)
👉 Gradle - jetbrains (JetBrains)
👉 Gradle - jb-compose (JetBrains Compose)
plugin id
は gradle.plugin
で探すとよい。
plugin.id : plugin.id.gradle.plugin : plugin.version
{group id} : {artifact id}
{artifact id} = "{plugin id}.gradle.plugin"
Group ID com.android.application
Artifact ID com.android.application.gradle.plugin
Version 8.0.0-alpha05
Plugin ID → "com.android.application"
👉 com.android.application - Google's Maven Repository
Group ID com.android.library
Artifact ID com.android.library.gradle.plugin
Version 8.0.0-alpha05
Plugin ID → "com.android.library"
👉 com.android.library - Google's Maven Repository
Group ID com.google.firebase.crashlytics
Artifact ID com.google.firebase.crashlytics.gradle.plugin
Version 2.9.2
Plugin ID → "com.google.firebase.crashlytics"
👉 com.google.firebase.crashlytics - Google's Maven Repository
Group ID com.google.gms.google-services
Artifact ID com.google.gms.google-services.gradle.plugin
Version 4.3.14
Plugin ID → "com.google.google-services"
👉 com.google.gms.google-services - Google's Maven Repository
3つあるけど、どれがいいのか。
👉 Maven Central Repository Search
👉 Maven Repository: Search/Browse/Explore
hilt
, gradle.plugin
のように入力して探すと良い。
<groupId>com.google.dagger.hilt.android</groupId>
<artifactId>com.google.dagger.hilt.android.gradle.plugin</artifactId>
<version>2.44</version>
Plugin ID → "com.google.dagger.hilt.android"
👉 Maven Central: com.google.dagger.hilt.android:com.google.dagger.hilt.android.gradle.plugin:2.44
<groupId>app.cash.sqldelight</groupId>
<artifactId>app.cash.sqldelight.gradle.plugin</artifactId>
<version>2.0.0-alpha04</version>
Plugin ID → "app.cash.sqldelight"
👉 Maven Central: app.cash.sqldelight:app.cash.sqldelight.gradle.plugin:2.0.0-alpha04
👉 【Plugin DSL】「com.android.tools.build:gradle」の記述は不要?
👉 【Gradle Version Catalog】libs.versions.toml キー名の形式 camelCase vs kebab-case
👉 「⚠ This project uses Gradle Version Catalogs: this tool may not behave as expected.」→ 今現在、Gradle Version Catalog には gradle-versions-plugin が必須では?